JS维吉尼亚密码算法实现代码_javascript技巧
程序员文章站
2022-04-10 14:28:33
...
复制代码 代码如下:
var Vigenere = {
_strCpr: 'abcdefghijklmnopqrstuvwxyz_12345 67890.ABCDEFGHIJKLMNOPQRSTUVWXYZ',//可以将此字符串的顺序打乱点,或者添加更多字符
_strKey: function(strK,str){//生成密钥字符串,strK为密钥,str为明文或者密文
var lenStrK = strK.length;
var lenStr = str.length;
if(lenStrK != lenStr){//如果密钥长度与str不同,则需要生成密钥字符串
if(lenStrK while(lenStrK 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; 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
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 rlt;
};
上一篇: php switch用法详解
下一篇: C/C++中嵌入Python
推荐阅读
-
js实现动态改变字体大小代码_javascript技巧
-
很好用的js日历算法详细代码_javascript技巧
-
JS取得绝对路径的实现代码_javascript技巧
-
JS关键字变色实现思路及代码_javascript技巧
-
js或者jquery判断图片是否加载完成实现代码_javascript技巧
-
js 图片随机不定向浮动的实现代码_javascript技巧
-
js获取元素相对窗口位置的实现代码_javascript技巧
-
js 判断checkbox是否选中的实现代码_javascript技巧
-
js仿百度有啊通栏展示效果实现代码_javascript技巧
-
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)_javascript技巧