当前位置: 58彩票app下载 > 计算机网络 > 正文

JS维吉尼亚密码算法实现代码

时间:2019-09-18 11:14来源:计算机网络
复制代码 代码如下: var Vigenere = { _strCpr: 'abcdefghijklmnopqrstuvwxyz_1234567890.ABCDEFGHIJKLMNOPQ讴歌RDXSTUVWXYZ',//能够将此字符串的各种打乱点,可能增添越多字符 _strKey:function(strK,str){//生成密钥字符

复制代码 代码如下:

var Vigenere = {
_strCpr: 'abcdefghijklmnopqrstuvwxyz_12345 67890.ABCDEFGHIJKLMNOPQ讴歌RDXSTUVWXYZ',//能够将此字符串的各种打乱点,可能增添越多字符
_strKey: function(strK,str){//生成密钥字符串,strK为密钥,str为公开恐怕密文
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; loop<lenK; loop++){
var 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 rlt;
};

你或然感兴趣的稿子:

  • js版本A*寻路算法
  • js+ajax实现的A*娱乐路线算法整理
  • 常用JS加密编码算法代码
  • js二种排序算法共享
  • js算法中的排序、数组去重详细概述
  • javascript图片相似度算法实现js达成直方图和向量算法
  • js沟通排序 冒泡排序算法(Javascript版)
  • Python求解平方根的艺术
  • php寻找钦定范围内回文数且平方根也是回文数的办法
  • Python中央银行使sqrt()方法进行平方根总计的教程
  • JavaScript落实算术平方根算法-代码超简单

编辑:计算机网络 本文来源:JS维吉尼亚密码算法实现代码

关键词: