2017-09-04 158 views
0

問題: 編寫一個名爲crypto.js的程序,用於加密包含大寫/小寫字符,數字和特殊字符的密碼。使用Pizza2Day!爲密碼。 請參閱下面的示例執行:使用Javascript加密密碼

該程序將加密用戶密碼。

密碼:Pizza2Day!

加密...............

加密密碼:Njaam2Fmc!

我的代碼:

function crypto() { 
    var pass = "Pizza2Day!"; 
    var flag = 0; 
    var encryptPass = ""; 
    var originalValues = [ 
    "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" 
    ]; 
    var encryptedValues = [ 
    "m", "h","t","f","g","k","b","p","j","w","e","r","q","s","l","n","i","u","o","x","z","y","v","d","c","a" 
    ]; 
    for (var i = 0; i < pass.length; i++) { 
    flag = 0; 
    for (var j = 0; j < originalValues.length; j++) { 
     if (originalValues[j] == pass.charAt(i)) { 
     encryptPass = encryptPass + encryptedValues[j]; 
     flag = 1; 
     break; 
     } else if (originalValues[j].toUpperCase() == pass.charAt(i)) { 
     encryptPass = encryptPass + encryptedValues[j].toUpperCase(); 
     flag = 1; 
     break; 
     } 
    } 
    if (flag == 0) { 
     encryptPass = encryptPass + pass.charAt(i); 
    } 
    } 
} 
console.log("New Password: " + encryptPass); 

,我遇到的問題:該文件沒有打印任何東西 我只是想有什麼我做錯了的想法。我該如何解決這個問題。非常感謝你。

+2

查找範圍中可能出現的錯誤的提示開發者控制檯。另外 - 它看起來像你在你的函數之外執行'console.log()'。 –

+0

你永遠不會打電話給你的功能。而且你正試圖'console.log()'這個範圍中不存在的值。 – David

回答

0

那麼有可以改善的幾件事情:

  1. 您嘗試登錄本地變量encryptPasscrypto()功能

  2. 外面在console.log()表達式,調用函數

  3. 的函數應該返回encryptPass變量

希望這有助於