2016-09-19 6 views
-3

私はWeb会社から、約30行のHTML/javascriptコードを壁の表示に使用するように求められました。このコードは、最新のブラウザで実行され、約30語以下のメッセージを表示する有効なコードの実際の部分である必要があります(たとえば、会社にとっては賢明で強健なブランドメッセージ)。印刷されたJavaScriptコードでメッセージを非表示にする

大きな1つの大きなdocument.write()文がこれを実行しますが、メッセージをもっと隠すようなものを探しています。本質的に、彼らは、JSの中間的な理解なしに誰かからのメッセージを隠す視覚的なパズルを作ることを目指しています。

laypersonにはランダムコードのように見えます。

私はこれを行う方法に関するアイデアや提案を探しています。私は、自動javascriptのminifierまたはobfuscatorsをオンラインで使用しようとしましたが、これらの一般的な出力コードは人間には完全に読めないので、私はそれを望んでいますは人間/コーダが読むことは困難ですが不可能ではない

隠されるべきメッセージであったと仮定すると: "。。Loremのイプサム悲しみ、AMET consecteturのadipiscingのELIT座るPraesent QUISイプサムイプサムDonec QUIS lectusらアンティ妊婦ultriciesで"

私はこれにどのようにアプローチできますか?

HTML/CSS、JS & JQueryはすべて許可されています。

あなたはページのソースを見ている人に見えている正確なメッセージを隠すために探している場合は、あなたを

+1

これは意見サイトではありません。申し訳ありません:/ – MatejMecka

+0

どこにお尋ねしますか? –

+3

私はまだあなたが何を望んでいるのか理解できません。 –

答えて

1

有効なHTML/JS/CSSに加えて、ヒューマンコードインタプリタをターゲットにした追加の紆余曲折があり、楽しいプログラミング課題のように聞こえます。

メッセージをスクランブルまたは断片化した(読み取り可能な)形式で表示し、メッセージをデスクランブルするコードを表示することを考えてください。簡単な例:

var a = [" consectetur", 
     "dolor", 
     "Lorem ipsum ", 
     " sit amet,"]; 
return a[2] + a[1] + a[3] + a[0]; 

これを連結するためにどの変数を決定するために、条件式を使用して、他の(潜在的に無関係なコード)のうち、関連する文字列部分を隠す/散乱により(rescrambleすると挑戦)より困難にすることができ、関連させ配列インデックスは、いくつかの計算/関数呼び出しまたは論理分岐などの結果によって決定されます。

コード化されたメッセージは(コードのみからまだ読める)それほど明白である例:私はとの間のバランスを見つけることに嘘をこれをオフに引っ張っに挑戦を推測

<script id="codeblock"> 
 
    
 
    //JavaScript 
 

 
    function getHTML(id) { 
 
    return document.getElementById(id).innerHTML; 
 
    } 
 
    
 
    var myFavorites = [ 
 
    'No Woman No Cry', 
 
    'Exodus', 
 
    'Is This Love', 
 
    'Buffalo Solder', 
 
    'Could You Be Loved' 
 
    ]; 
 
    
 
    var didYouGetTheMessage = (function(letters){ 
 
    var x = letters.split(''), 
 
     y = myFavorites, 
 
     z = getHTML('codeblock').split('\/\/')[1]; 
 
    x.reverse(); 
 
    return [x[17], 
 
      y[2].slice(-4), 
 
      z.slice(0, 10)] 
 
    .join(' '); 
 
    })('ABCDEFGHIJKLMNOPQRSTUVWXYZ'); 
 
    
 
    //If you still did not get it ... 
 
    console.log(didYouGetTheMessage); 
 
    
 
</script>

あまりにも多くの労力を必要とするものとは対照的に、コードを読んでいる間に人間にとっては解読するのが困難で楽しいものは何か。

+0

" I Love JavaScript "?私はそれが好きです!私に数分かかった、x.reverse()は私を少し投げた! –

0

を(それがスタックオーバーフローのために右ではない場合モデレーターは、どこかでより適切にこの質問を移動してください)文字列を暗号化し、スクリプト内の変数に格納します(ハードコードされている)。そして、あなたがそれを表示する必要があるときだけそれを解読することができます。そうすれば、ソースを見ている人は、見ていれば正確な文章を見ることができません。しかし、JavaScriptを熟知している人は、それを表示するためにプログラマチックに何をしているのかをまだ確認することができます。

関連する問題