2015-01-04 4 views
0

Мне нужно отправить форму с функцией «хэш» для пароля. Вопрос в том, как изменить исходное значение текстового поля пароля на хешированное значение для вставки в БД?Отправить форму с хешированным паролем

Я понимаю следующее. Когда я нажимаю кнопку отправки, форма отправляет значения текстовых полей в файл php. В частности, как я уже говорил, мне нужно отправить новый хешированный пароль вместо первоначального значения.

Извините, если я не очень ясен, но я очень груб на это.

Спасибо заранее

Часть кода я использую является следующим:

... 
<input type="password" id="upwd" name="upwd" onChange="validatePassword()"> 
<input id="submit" type="submit" value="Sign up!" onsubmit="sending()"> 
... 
<script> 
... 
function sending() { 
    z = document.getElementById("upwd").value; 
    upwd = hashCode(); 
} 

function hashCode() { 
var hash = 0; 
if (z.length === 0) return hash; 
for (var i = 0; i < z.length; i++) { 
var character = z.charCodeAt(i); 
hash = ((hash<<5)-hash)+character; 
hash &= hash; // Convert to 32bit integer 
} 
    return hash; 
} 
</script> 

ответ

1

хеширования паролей выполняется на стороне сервера, в вашем случае в PHP скрипт. Вы можете использовать функцию PHP password_hash(), чтобы вычислить безопасный хэширование BCrypt.

Если вы вычислите сторону хеш-клиента, ManInTheMiddle увидит хеш-пароль и сможет использовать его напрямую, чтобы получить доступ к учетной записи пользователя. Хэш станет фактическим паролем.

Модификация пароля выполняется для случая, когда злоумышленник имеет доступ к чтению в вашу базу данных. В этом случае он увидит хеши, но все равно не узнает настоящие пароли. Без реального пароля он не может использовать учетную запись пользователя.

+0

OK. Я понимаю, но в этом случае я должен делать это на стороне клиента. –

+0

@ VíctorFernándezPousa - Мне интересно узнать, почему это необходимо сделать на стороне клиента, чего вы хотите достичь? Хеширование _can_ выполняется на стороне клиента, но необходимо также вычислить как минимум простую сторону хеш-сервера. Посмотрите на этот [ответ] (http://security.stackexchange.com/a/53845/8343) для более подробной информации. – martinstoeckli

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