使用地图替换字符

时间:2017-01-30 03:57:06

标签: javascript

我正在尝试制作一个密码加密器,但是我无法绕过它。

var replacementMap = {'a' : 'm', 'b' : 'h', 'c' : 't', 'd' : 'f', 'e' : 'g', 'f' : 'k', 'g' : 'b', 'h' : 'p', 'i' : 'j', 'j' : 'w', 'k' : 'e', 'l' : 'r', 'm' : 'q', 'n' : 's', 'o' : 'l', 'p' : 'n', 'q' : 'i', 'r' : 'u', 's' : 'o', 't' : 'x', 'u' : 'z', 'v' : 'y', 'w' : 'v', 'x' : 'd', 'y' : 'c', 'z' : 'a', }

var charToBeReplaced = password;

string bleh = charToBeReplaced.replace(charToBeReplaced, replacementMap[charToBeReplaced]);

console.log(bleh);

我究竟如何接受用户输入,然后根据我的条件使用它来替换它?

1 个答案:

答案 0 :(得分:1)

我认为这不严重,只是出于学习目的。因为正如评论中所说,这可能导致 BIG 麻烦(主要安全性)。

var replacementMap = {'a' : 'm', 'b' : 'h', 'c' : 't', 'd' : 'f', 'e' : 'g', 'f' : 'k', 'g' : 'b', 'h' : 'p', 'i' : 'j', 'j' : 'w', 'k' : 'e', 'l' : 'r', 'm' : 'q', 'n' : 's', 'o' : 'l', 'p' : 'n', 'q' : 'i', 'r' : 'u', 's' : 'o', 't' : 'x', 'u' : 'z', 'v' : 'y', 'w' : 'v', 'x' : 'd', 'y' : 'c', 'z' : 'a', }

var password = prompt("Enter passwor: ");

// bleh should be initialized
var bleh = "";
// loop through all chars of password one by one
for(var i = 0; i < password.length; i++){
  // get the current character lowercased
  var char = password.charAt(i).toLowerCase();
  // append to bleh its equivalent value (note that if there is no key for this char undefined will be appended instead)
  bleh += replacementMap[char];
}

console.log("'" + password + "' becomes '" + bleh + "'");