2017-01-30 64 views
0

我正在嘗試創建密碼加密器,但我在繞過它時遇到問題。使用地圖替換字符

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); 

我到底該如何接受用戶輸入,然後用它來根據我的條件來替換它?

+0

'串bleh'這是[標籤:Java的]? – Tushar

+0

它旨在成爲JavaScript,但我仍然在學習它的細節。在C#中,我有一個混合編碼的壞習慣,因爲它與JavaScript類似。 –

+1

不知道你在編碼什麼樣的環境,它不可能幫助你 - 你的clinetside是什麼意思? – Soren

回答

1

我認爲這並不嚴重,只是爲了學習的目的。正如評論中所說,這可能會導致麻煩(主要安全整體)。

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 + "'");