技 巧 鍵 盤 ─ KeyNavi:キーボードを活用してホームページを快適に─    
キー割当表示[Shift-H]        
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] 文字列の暗号化 ・サイトマップ [Shift-S]

■ 文字列の暗号化:kl_encrypt/decrypt()

文字列の暗号化、複合化を行います。

【暗号化と複合化「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の性格上、暗号化のキー文字列を完全には隠蔽できないので セキュリティは低いです。 パッと見て なんだか分からない文字列にしたい場合にのみ利用してみて下さい。



【JavaScript@Keynavi.Net : その他編 】
「Ctrl-矢印」でフォーカスを上下左右に移動できます。

  - status出力をリダイレクト:kl_status(s,opt)
  - 外部スクリプトを動的に読み込む
  - フレームページでも個別URL指定を可能に
  - 文字列の暗号化:kl_encrypt/decrypt()
  - Try,Catch文の互換性対策
  - クッキー処理:kl_cookie_set/del/get()

トップへ戻る [1]
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] 文字列の暗号化 ・サイトマップ [Shift-S]
キー割当表示[Shift-H] ─ KeyNavi Project 2003 ─