我想用javascript进行自定义加密,但我坚持使用解密函数
我想用javascript创建新的自定义加密引擎,但在创建解密函数时遇到了一个问题。在我的解密函数中,我不知道如何将3个字符转换为1个字符。在decryption function部分中,我不想要的案例中的3个字符将更改为返回的字符 如果你需要我的完整代码,我可以在这里分享 所以请帮我解决这个问题。对不起,我的英语不好:)我想用javascript进行自定义加密,但我坚持使用解密函数,javascript,html,Javascript,Html,我想用javascript创建新的自定义加密引擎,但在创建解密函数时遇到了一个问题。在我的解密函数中,我不知道如何将3个字符转换为1个字符。在decryption function部分中,我不想要的案例中的3个字符将更改为返回的字符 如果你需要我的完整代码,我可以在这里分享 所以请帮我解决这个问题。对不起,我的英语不好:) 加密解密 解密 函数encrypt(){ var rawtext=document.getElementById(“输入”).value; var=”; 对于(i=0;
加密解密
解密
函数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
- 不需要
中断在case语句中的
之后,作为return将结束执行return
加密解密
解密
函数解密(){
document.getElementById(“结果”).innerHTML=document.getElementById(“input2”).value.match(/.{1,3}/g).map(dec.join(“”);
}
函数dec(x){
开关(x){
大小写“+/=”:
返回“A”;
案例“36=”:
返回“B”;
违约:
返回“?”;
}
}
非常感谢,伙计,谢谢你的帮助:)必须提醒你,使用自己的密码是个糟糕的主意。