我将如何加密整个用户输入?

时间:2018-10-23 19:20:59

标签: javascript reactjs debugging

我正在尝试加密用户输入的单词,但它只是加密该单词的最后一个字母。

换句话说,如果我输入<phpunit ...> <php> ... <env name="SYMFONY_DEPRECATIONS_HELPER" value="weak_vendors" /> 并单击按钮,浏览器将显示abc而不是z。它会忽略xyz的加密。

我在做什么错了,我该如何纠正?

ab

3 个答案:

答案 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)”。