gpt4 book ai didi

javascript - 反转我的加密方法

转载 作者:行者123 更新时间:2023-12-02 14:24:25 25 4
gpt4 key购买 nike

我创建了次要加密方法来根据字符之间的距离转换小字符串,但在不知道初始转换中每个字符之间的距离的情况下,我一生都无法弄清楚如何反转它。请参阅图片了解其工作原理示例 imgur.com/Ine4sBo.png

我已经在这里创建了加密方法(Javascript):

var all = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.#-?").split('');
var position;
//var oKey = "P";



function encrypt() // Encrypt Fixed
{

var sEncode = ("HI-MOM").split('');
var oKey = "P";

for (var i = 0; i < sEncode.length; i++) {
if (all.indexOf(oKey) < all.indexOf(sEncode[i])) {
position = all.indexOf(sEncode[i]) - all.indexOf(oKey);
output.value += "oKey: " + oKey + " distance to sEncode[" + i + "]: " + sEncode[i] + " Count: " + position + " Final Char: " + all[position-1] + "\n";
oKey = sEncode[i];
}
else {
position = all.length - all.indexOf(oKey) + all.indexOf(sEncode[i]);
output.value += "oKey: " + oKey + " distance to sEncode[" + i + "]: " + sEncode[i] + " Count: " + position + " Final Char: " + all[position-1] + "\n";
oKey = sEncode[i];
}


}
}

然而,decrypt() 方法却让我很苦恼。

最佳答案

据我所知,您的加密函数可以简化为:

var all = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.#-?").split('');
function encrypt(str)
{
var sEncode = str.split('');
var result = '';
var oKey = "P";
for(var i = 0; i < sEncode.length; i++)
{
result += all[(all.indexOf(sEncode[i]) - all.indexOf(oKey) + all.length - 1) % all.length];
oKey = sEncode[i];
}
return result;
}

(我通过添加 all.length 来摆脱 if 子句,并在必要时使用余数运算符再次将其删除。)

从那里,您需要做的就是翻转操作数(- all.indexOf(oKey) - 1 变为 + all.indexOf(oKey) + 1 (由于我们不再需要减法,因此不再需要添加 all.length))并反转顺序(因此 oKey 被分配转换后的值而不是原始值):

var all = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.#-?").split('');
function decrypt(str)
{
var sEncode = str.split('');
var result = '';
var oKey = "P";
for(var i = 0; i < sEncode.length; i++)
{
oKey = all[(all.indexOf(sEncode[i]) + all.indexOf(oKey) + 1) % all.length];
result += oKey;
}
return result;
}

关于javascript - 反转我的加密方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com