暗号化について考える
 まぁ無駄といえば無駄な話ですが、JavaScript以外でも応用できるのではないかと思います。
○そもそも暗号化とは?
 私もこういうのには弱いのでなんともいえませんが...
 考えようですが、暗号化ってのは、文字列を読めなくするであると同時に、誰かには読めるものであると思います。つまり暗号化した文字列は、読めるということになりますね。
 私が思うに、暗号化は必ず解読される、つまりその解読される時間が長いか短いかの違い、ではないでしょうか?暗号化の例を示します。

KLQBP

 これ、なんだか解かりますか?ヒントは3です。...解かりませんよね、でもよく見てみましょう。Kからアルファベットを3つずらしてみましょう。LMNですね。同様にして全部やっていくと...
KLM--->N
LMN--->O
QRS--->T
BCD--->E
PQR--->S

NOTES

 はい、これでわかるようになりました。単純ではありますが、一応暗号化です。でもこの方法には欠点が...わかりますよね?アルファベットは26文字しかありませんから、最大26回で破られてしまいます。
 一応ソース載せておきます。もっと賢いやり方があると思うので、見つけた方は連絡をくれるとありがたいです。

<script language="javascript">
<!--
str = "NOTES";
for(i = 0;i < str.length;i++){
  var s = str.charCodeAt(i);
  s = s - 3;
  s = String.fromCharCode(s);

  var t = s.charCodeAt(0);
  t = t + 3;
  t = String.fromCharCode(t);
  document.writeln(s + "=====" + t + "<br>");
}
//-->
</script>

 ということで暗号化にというものをつけてみます。解かりますかね、これ。

I>T@PAQFNS

 鍵を言います。鍵は「132」です。...カンがいい人はわかるかもしれません。では詳しく
 鍵である「132」を交互に移動していきます。つまり、「I」は1文字アルファベットを進めます。つまり「J」です。同様にして解読していくと...「JAVASCRIPT」になります。途中で記号が混ざっているのは、文字コードがアルファベットの領域を抜けたためです。
<script language="javascript">
<!--
str = "JAVASCRIPT";
key = "132";
for(i = 0;i < str.length;i++){
  p = i % key.length;
  s = str.charCodeAt(i);
  n = key.charAt(p);
  s = s - n;
  s = String.fromCharCode(s);

  t = s.charCodeAt(0);
  t = t + eval(n);
  t = String.fromCharCode(t);
  document.writeln(s+ "====="+t+"<br>");
}
//-->
</script>


 また、JavaScriptにはEscape()という関数があったはずなので、それも使えると思います。しかし、この方法では、日本語の暗号化には適していません。ブラウザごとに違う文字コードを返してくるからです。

 結論として、こんな考えは誰にでも思いつくとは思います。が、鍵にアルファベットを使えるようにしたりすることで、わりと強力な暗号化できると思います。



Top
Copyright © 2005- ou-getsu-chou All Rights Reserved.