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. length;
Vigenere.Encrypt = function(K,P){//암호화 알고리즘, K는 키, P는 일반 텍스트
K = Vigenere._strKey(K,P); var lenK = K.length;
var rlt = '';
var loop = 0;
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 rlt = '';
var loop = 0
for(loop=0; loop< ;lenK ; loop ){
var iK = Vigenere._strCpr.indexOf(K.charAt(loop));
if(iK==-1) return '키에 잘못된 문자가 포함되어 있습니다:' K.charAt( loop ); 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
};