我正在尝试加密用户输入的单词,但它只是加密该单词的最后一个字母。
换句话说,如果我输入<phpunit ...>
<php>
...
<env name="SYMFONY_DEPRECATIONS_HELPER" value="weak_vendors" />
并单击按钮,浏览器将显示abc
而不是z
。它会忽略xyz
的加密。
我在做什么错了,我该如何纠正?
ab
答案 0 :(得分:1)
在您的switch
语句中,您将encryptedValue
设置为完全 new 值,而不是将 appending 设置为先前的encryptedValue
。对于abc
,它只会记住您加密的最后一个字符,因此z
。
如果您想解决此问题,请将=
更改为+=
,以便将其附加到encryptedValue
而不是覆盖它。
由于input[i].charAt(i)
已经包含要切换的字符,因此您似乎正在切换input[i]
,这会导致错误。
let input = "abc";
let encryptedValue = "";
for (let i = 0; i < input.length; i++) {
switch (input[i]) {
case "a":
encryptedValue += "x";
break;
case "b":
encryptedValue += "y";
break;
case "c":
encryptedValue += "z";
break;
default:
encryptedValue += "";
}
}
console.log(encryptedValue);
答案 1 :(得分:0)
在每种情况下,您都将字符串设置为新值,而不是在字符串后附加一个字符。 对于初学者,您可以尝试+ =代替= 这对abc有效,但是如果输入obc,则只会得到yz。
要使其在所有情况下均有效,请将原始字符串复制到cryptostValue 1st中,然后在每种情况下都将cryptonizedValue [i]设置为加密字符
答案 2 :(得分:0)
如果您尝试将“ encryptedValue”设为加密字符串,则应将其连接起来,因此应该为
encryptedValue=encryptedValue+"x";
或更短的版本
encryptedValue+="x";
您还可以在react中使用加密导入 https://www.npmjs.com/package/react-encrypt 它具有简单的功能,例如“ encrypt(string)”。