Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想用javascript进行自定义加密,但我坚持使用解密函数_Javascript_Html - Fatal编程技术网

我想用javascript进行自定义加密,但我坚持使用解密函数

我想用javascript进行自定义加密,但我坚持使用解密函数,javascript,html,Javascript,Html,我想用javascript创建新的自定义加密引擎,但在创建解密函数时遇到了一个问题。在我的解密函数中,我不知道如何将3个字符转换为1个字符。在decryption function部分中,我不想要的案例中的3个字符将更改为返回的字符 如果你需要我的完整代码,我可以在这里分享 所以请帮我解决这个问题。对不起,我的英语不好:) 加密解密 解密 函数encrypt(){ var rawtext=document.getElementById(“输入”).value; var=”; 对于(i=0;

我想用javascript创建新的自定义加密引擎,但在创建解密函数时遇到了一个问题。在我的解密函数中,我不知道如何将3个字符转换为1个字符。在decryption function部分中,我不想要的案例中的3个字符将更改为返回的字符

如果你需要我的完整代码,我可以在这里分享

所以请帮我解决这个问题。对不起,我的英语不好:)


加密解密


解密 函数encrypt(){ var rawtext=document.getElementById(“输入”).value; var=”; 对于(i=0;i
可以使用三个字符对加密字符串进行解密

while (i < rawtext.length) {
    temptext += dec(rawtext.slice(i, i += 3)); // take from index i and increment i by 3
}
while(i
函数加密(){
var rawtext=document.getElementById(“输入”).value,
TENTEXT=“”,
我
对于(i=0;i
加密和解密

加密

解密
您正在循环使用单数字符并将它们传递给
dec()
,例如,如果您输入“+/=”,您实际上是在调用
dec(+')
然后
dec('/')
然后
dec('='))

解密输入的值时,必须将它们分成3组,然后传递这些值

function decrypt(){
    var rawtext = document.getElementById("input2").value;
    var temptext = "";

    for(i = 0, charsLength = rawtext.length; i < charsLength; i += 3){
        temptext += dec(rawtext.substring(i, i + 3));
    }

    document.getElementById("result").innerHTML = temptext;
}
函数解密(){
var rawtext=document.getElementById(“input2”).value;
var=”;
对于(i=0,charsllength=rawtext.length;i
看起来您正在对文本进行迭代以逐个字符解密,但是
dec
函数需要三个字符。这永远不会发生,因此
dec()
返回未定义

例如:

decrypt("36=") -> 
    dec("3") + dec("6") + dec("=") ->
    undefined + undefined + undefined
    undefinedundefinedundefined
您应该更改解密函数以避免这种情况。此外,一些指针:

  • 您不需要在加密/解密函数中初始化
    i
  • 不需要
    中断return
    之后,作为return将结束执行
编辑:这里有一个map的例子,因为其他一些答案有一些for循环。还因为我怀疑它可以用一句话来完成(我是对的!)


加密解密


解密 函数解密(){ document.getElementById(“结果”).innerHTML=document.getElementById(“input2”).value.match(/.{1,3}/g).map(dec.join(“”); } 函数dec(x){ 开关(x){ 大小写“+/=”: 返回“A”; 案例“36=”: 返回“B”; 违约: 返回“?”; } }
非常感谢,伙计,谢谢你的帮助:)必须提醒你,使用自己的密码是个糟糕的主意。