読者です 読者をやめる 読者になる 読者になる

太陽がまぶしかったから

C'etait a cause du soleil.

簡易難読化のためにJavaScriptでシーザー暗号(日本語対応)を実装する

プログラミング プログラミング-Webサービス

f:id:bulldra:20150928214805p:plain

シーザー暗号化/復号化ツール(日本語対応)

シーザー暗号による簡易難読化スクリプト

シーザー暗号(シーザーあんごう、英語:Caesar cipher)は、単一換字式暗号の一種で、平文の各文字を辞書順に3文字だけシフトして暗号文をつくる暗号である。カエサル暗号とも呼ばれる。文字のシフト数は固定であるが、3に限る必要はなく、シフト数を3以外にした方式もシーザー暗号(あるいはシフト暗号)と呼ぶことがある。

シーザー暗号 - Wikipedia

 シーザー暗号をJavaScript実装した。単純な仕組みなのでセキュリティ的にはザルだが簡易な難読化ができれば十分な場合に利用できる。指定したシフト数が復号キーとなる。URLエンコーディングしてから暗号化することで日本語にも対応している。

 アドブロックブロックや全文RSS配信ブロックに混ぜることも可能。暗号化した情報を保存しておきアドブロックを検出できなかったら復号処理を動作させることで、Webページにおいてアドブロックを利用していない状況でのみ正しい情報が表示されるといった利用方法を想定。

/* シーザーー暗号化 */
function caesar(val, key) {
  console.log(val); 
  val = encodeURIComponent(val);
  var result = "";
  for (var i = 0; i < val.length; i++) {
    result += String.fromCharCode(val.charCodeAt(i) + key);
  }
  return result;
}

/* シーザー復号化 */
function decaesar(val, key) {
  console.log(val);
  var result = "";
  for (var i = 0; i < val.length; i++) {
    result += String.fromCharCode(val.charCodeAt(i) - key);
  }
  return decodeURIComponent(result) ;
}

暗号 情報セキュリティの技術と歴史 (講談社学術文庫)

暗号 情報セキュリティの技術と歴史 (講談社学術文庫)