文字列の暗号化、複合化を行います。
【暗号化と複合化「kl_encrypt/decrypt()」<keynavi_ja.js】
//--------------------------------------
//kl_encrypt/decrypt(s)
//返り値:暗号化/複合化した文字列
//s:文字列(日本語入力時はescape()実行)
//KL_CRYPT_KEY:キーとして用いる文字列
//KL_COOKIE_CHARS:クッキーで利用可能な文字
//--------------------------------------
KL_CRYPT_KEY="Rain Drops Falling On My Head...";
KL_COOKIE_CHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%./_";
function kl_crypt(s,enc){
var chars=KL_COOKIE_CHARS;
var key=escape(KL_CRYPT_KEY);
var t=""; var c,n,m;
for(var i=0;i<s.length;i++){
c=s.charAt(i);
n=chars.indexOf(c);
if(n>=0){
m=chars.indexOf(key.charAt(i%key.length));
if(enc) n=n+m; else n=n-m;
if(n<0) n=n+chars.length;
if(n>=chars.length) n=n-chars.length;
c=chars.charAt(n);
}
t+=c;
}
return t;
}
function kl_encrypt(s){ return kl_crypt(s,1); }
function kl_decrypt(s){ return kl_crypt(s,0); }
//入力文字列が日本語の場合は以下を利用//
function kl_encryptj(s){ return kl_crypt(escape(s),1); }
function kl_decryptj(s){ return unescape(kl_crypt(s,0)); }
KL_CRYPT_KEYには任意の文字列(日本語可)を指定できます。
ちなみに この関数はクッキーの暗号化に用いています。
【暗号化/複合化のサンプル】
<script language="javascript" src="http://www.keynavi.net/files/keynavi_ja.js"></script>
<script language="javascript"><!--
KL_CRYPT_KEY="最近、何か変わったこと無い?";
s="たまちゃん再出没!";
alert(kl_encryptj(s));
alert(kl_decryptj(kl_encrypt(s));
//-->
</script>
JavaScriptの性格上、暗号化のキー文字列を完全には隠蔽できないので
セキュリティは低いです。
パッと見て なんだか分からない文字列にしたい場合にのみ利用してみて下さい。