>웹 프론트엔드 >JS 튜토리얼 >JS 버지니아 암호 알고리즘 구현 Code_javascript 기술

JS 버지니아 암호 알고리즘 구현 Code_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:16:381253검색
코드 복사 코드는 다음과 같습니다.

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
};

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.