Теперь, если вы храните некоторые данные, которые вы передаете по сети, которые МОГУТ быть перехвачены, вы должны использовать Шифрование / дешифрование
Если вы говорите о полномочиях в поместье пароляпользователя, то хэширование - это путь.
По умолчанию, когда вы говорите Шифрование , вы мгновенно получаете и извлекаемую сторону Дешифрование , с хэшированиемне нужно извлекать значение скомпилированного текста, просто сравните его с другим хешем
Вы можете объединить оба вместе для передачи данных через Интернет, но они все равно остаются, просто используйте каждыйдругой для проверки друг друга.
Пример того, как вы должны хешировать в PHP, выглядит так:
Хэш
define('LOCAL_USER_SALT',£F$%^GH*&^%HG&*^%F&*(K(*');
Тогда этоХеш никогда не должен меняться, это то, что статический хеш и будет использоваться для тройного хеширования пароля, позвольте мне показать вам
class User
{
//..
function AddUserToDatabase($username,$password,$meta = array())
{
//Create a db salt
$salt = md5(uniqid() . microtime() . $username . microtime(true));
//Now we create a hashed version of the
$password = md5($password . $salt . LOCAL_USER_SALT);
//Then you would insert the $salt and $hash to the DB
}
//..
}
После прочтения комментариев вы можете проверить так:
class User
{
//..
public function CheckCredentials($username,$pass)
{
//Get results from DB where $username is set in the column
//lets say $db_row is the data from the sql query
$check = md5($password . $db_row['salt'] . LOCAL_USER_SALT);
if($password == $check)
{
//The user exists.
}
}
//..
}
Так что это называется односторонним хэшированием, нет необходимости иметь обратимый алгоритм для учетных данных ваших пользователей.