var dkey = ""
function changekey(decryptionkey){
dkey = decryptionkey
var Ranint = Math.floor(Math.random() * 25) + 1
var Ranint2 = Math.floor(Math.random() * 25) + 1
if(Ranint===Ranint2){
Ranint2+=1
if(Ranint2>25){
Ranint2-=3
}
}
key = key.replace(key.charAt(Ranint),key.charAt(Ranint2))
}
changekey(key)
alert(key)
Say Ranint = 1,Ranint2 = 2然后键是 " BBCDEFGHIJKLMNOPQRSTUVWXYZ"
我的问题是如何更改密钥的代码以导致结果 " BACDEFGHIJKLMNOPQRSTUVWXYZ"
答案 0 :(得分:0)
String.prototype.setCharAt = function(index,chr) {
if(index > this.length-1) return str;
return this.substr(0,index) + chr + this.substr(index+1);
}
var dkey = "";
function changekey(decryptionkey){
dkey = decryptionkey;
var Ranint = Math.floor(Math.random() * 25) + 1;
var Ranint2 = Math.floor(Math.random() * 25) + 1;
if(Ranint===Ranint2){
Ranint2+=1;
if(Ranint2>25){
Ranint2-=3;
}
}
var firstChar = dkey.charAt(Ranint);
var secondChar = dkey.charAt(Ranint2);
dkey = dkey.setCharAt(Ranint2, firstChar);
dkey = dkey.setCharAt(Ranint, secondChar);
return dkey;
}
alert(changekey("ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
答案 1 :(得分:0)
这只是一个值得考虑的替代选择,找到合适的选择:
var myStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
function switchChar(str)
{
var randomA = getExclusiveRandom(str);
var randomB = getExclusiveRandom(str, randomA);
var replaceA = str[randomA];
var replaceB = str[randomB];
str = str.split("");
str[randomA] = "["+replaceB+"]";
str[randomB] = "["+replaceA+"]";
return str.join("");
}
function getExclusiveRandom(str, exclude)
{
var res = Math.floor(Math.random() * str.length) + 1;
if(!exclude)
{
return res;
}
else
{
if(res === exclude)
{
res = getExclusiveRandom(str, exclude);
}
return res;
}
}
console.info(switchChar(myStr));