2015-08-27 6 views
-1

Мне хотелось бы хэшировать пароль, например symfony2, но в javascript. Это мой код в Javascript:Хэш-пароль symfony2 в Javascript

this.hashPassword = function(salt, clearPassword) { 

    var digest = ""; 
    console.log('==== STARTING HASHING PASSWORD ===='); 
    var salted = null; 
    if (!salt || salt == "") { 
     salted = clearPassword; 
    } else { 
     salted = clearPassword + "{" + salt + "}"; 
    } 

    digest = CryptoJS.SHA512(salted); 
    for (var i=1; i<5000; i++) { 
     digest = CryptoJS.SHA512(digest.toString(CryptoJS.enc.Latin1)+salted); 
    } 
    digest = digest.toString(CryptoJS.enc.Base64); 
    console.log('==== ENDING HASHING PASSWORD ===='); 
    console.log(digest); 
    return digest; 
}; 

хэш пароля я получить не то же самое в базе данных, я не знаю, почему. Мой пароль в Symfony2 хэширован в SHA512 с солью, я уверен, потому что я тестирую код на PHP, и он работает.

Вы можете мне помочь?

Спасибо

+4

Зачем вам нужен хэш-пароль в JS? Это небезопасно, потому что соль читается кем-либо с этим методом. –

+0

^Да, согласился, глупо на этой неделе. – malcolm

+0

Потому что я нахожусь в приложении, разработанном в javascript. и я хотел бы общаться с бэкэндом, разработанным в symfony2. Так что, извините, если моя идея глупа для вас, я просто хочу найти решение, а не линчу. Спасибо –

ответ

0

По this answer является

SHA1 [..] not made for security [..] grab any implementation of BCrypt 

но есть объяснение, что, возможно, разрыв строки вызывает различные хэши. Это может быть отключено с Base64.encodeToString(byteData, Base64.NO_WRAP) в их случае.

Смежные вопросы