@ gahooa:
это отличный ответ! тем не менее, вы определенно захотите использовать дайджест сообщения для этого пароля (желательно с некоторыми отступами), чтобы люди не могли видеть свое имя пользователя / пароль открытым текстом.
http://pajhome.org.uk/crypt/md5/scripts.html Вот большой набор JavaScript, который зашифрует информацию перед отправкой по сети.
По сути, концепция заключается в том, что вы можете хранить пароль пользователя в этом зашифрованном формате (что также является хорошей идеей) или динамически вычислять его, если хотите, но после того, как оба они были переварены, они должны совпадать.
И тогда вы добавите только 1 функцию (код gahooa):
$.post(
'/login.php',
{username: u, password: hex_md5(p)}, // here
onLogin,
'json'
);
Это не самая безопасная , которой вы можете быть, поскольку вы могли бы также подумать о том, чтобы делать соль, где вы делаете это:
var salt = '$@.@^-^$'; // any random value with $p3c14l ch@|2$ (special chars)
$.post(
'/login.php',
{username: u, password: hex_md5(hex_md5(p) + salt)}, // here
onLogin,
'json'
);
затем в функции аутентификации на стороне сервера вы сделаете сравнение хешированных значений, т. Е .:
<?php
$salt = '$@.@^-^$'; // same as on client-side
function authenticate( $user, $pass ){
...
if( md5( md5( $storedPassword ) . $salt ) == $_POST['username'] ){ ... }
...
}
?>
или, как я уже сказал, вы можете сохранить уже хешированную версию
md5( md5( $_POST['signup_password'] ) . $salt )
паролей пользователей при регистрации (и преобразовании всех существующих)