var Vigenere = {
_strCpr: 'abcdefghijklmnopqrstuvwxyz_12345 67890 .ABCDEFGHIJKLMNOP QRSTUVWXYZ' ,//この文字列の順序を乱すことも、文字を追加することもできます
_strKey: function(strK,str){//キー文字列を生成します。strK はキー、str はプレーンテキストまたは暗号ですtext
var lenStrK = strK.length;
var lenStr = str.length;
if(lenStrK != lenStr){// キーの長さが str と異なる場合は、キー文字列を生成する必要があります
if(lenStrK < lenStr){// キーの長さが str より短い場合は、キーを連続的に繰り返してキー文字列を生成します
while(lenStrK < lenStr){
strK = strK strK ;
lenStrK = 2 * lenStrK;
}
}//このとき、キー文字列の長さは str
strK = strK.substring(0, lenStr);// キー文字列を str
}
return strK;
}
}
Vigenere.lenCpr = Vigenere._strCpr と同じ長さの文字列に切り詰めます。長さ;
Vigenere.Encrypt = function(K,P){//暗号化アルゴリズム、K はキー、P は平文
K = Vigenere._strKey(K,P); var lenK = K.length;
var rlt = '';
for(loop=0;loopvar iP = Vigenere._strCpr. IndexOf(P.charAt (loop));
if(iP==-1) return 'このアルゴリズムは現在、文字を暗号化できません: ' P.charAt(loop) ';
var iK = Vigenere._strCpr。 IndexOf(K .charAt(loop));
if(iK==-1) return 'キーに不正な文字が含まれています:' K.charAt(loop);
var i = (iP iK) % Vigenere。 lenCpr;
rlt = rlt Vigenere._strCpr.charAt(i);
return rlt;
Vigenere.DisEncrypt = function(K,C); 🎜> K = Vigenere._strKey(K,C);
var lenK = K.length;
var ループ = 0; ループ
;lenK ; ループ ){
var iK = Vigenere._strCpr.indexOf(K.charAt(loop));
if(iK==-1) return 'キーに不正な文字が含まれています:' K.charAt(ループ );
var iC = Vigenere._strCpr.indexOf(C.charAt(loop));
if(iK > iC){
rlt = Vigenere._strCpr.charAt(iC Vigenere.lenCpr - iK );
else{
rlt = Vigenere._strCpr.charAt(iC - iK);
}
}
return
};