Каким алгоритмом надежнее всего шифровать пароли? md5, sha1, sha2, aes, blowfish? Вот еще, стоит ли шифровать с помощью mcrypt? Я читал что это расширение уже не поддерживается и его уберут в php7, это правда? А с помощью openssl? Есть еще функция crypt(), ей стоит шифровать?
ОБСУЖДЕНИЕ
Шифрование
Sha2 + соль...
А вообще для вап сайтов и не крупных проектов хватит и чистого md5
А вообще для вап сайтов и не крупных проектов хватит и чистого md5
IvanDanilov, Ну md5 уже взламывают в два щета. А почему в платежных системах нет sha2?
По мне как мд5 щас нормально
Слушай... Вот как ты думаешь... У тебя обычный вап сайт... Ну сольют твою базу данных - кому будет дело до этих паролей?.. В плане сохранности данных на мелких проектах заботиться не надо. Главное что бы УГ кода не было...
М... Ну я могу сказать что лучше сделать 100 раз вставить один и тот же код в разные места, чем этот код вставить в функцию и использовать эту функцию... Человек не проводит опрос "Что вы используете", а что безопаснее.
http://php.net/manual/ru/faq.passwords.php
SHAYTANICH, Двойной мд5 и соль. Можно вообще двойной мд5 сша1 +соль .ггы. да и двойного мд5 с солью достаточно
Гавно тот админ который не заботится о безопасности . Если сайт мелкий то хранить пароль в открытом виде ? Бред несёшь. Как раз таки с самого начала и надо обо всем заботиться. А не когда сольют и личная информация юзеров попадет в свободный доступ. Многие даже приват в базе шифруют в разные кодировки.
addOrUpdateAccount(String account,
String password, String level) throws
IOException, SQLException,
NoSuchAlgorithmException
{
// Encode Password
MessageDigest md =
MessageDigest.getInstance("SHA");
byte[] newpass;
newpass = password.getBytes
("UTF-8");
newpass = md.digest(newpass);
// Add to Base
Connection con = null;
con =
L2DatabaseFactory.getInstance
().getConnection();
PreparedStatement statement =
con.prepareStatement("REPLACE
accounts (login, password,
accessLevel) VALUES (?,?,?)");
statement.setString(1, account);
statement.setString(2,
Base64.encodeBytes(newpass));
statement.setString(3, level);
statement.executeUpdate();
statement.close();
L2DatabaseFactory.close(con);
}
-------------------------------------
1. byte[] newpass;
2. newpass = password.getBytes
("UTF-8");
3. newpass = md.digest(newpass);
1. переводим символы в байты,
2. можно байты в utf-8 перевести
3. шифруем в ша1
INSERT INTO `accounts` (`login`
,`password`) VALUES ('1234',
'ieZV3cQYmPNlm0yUGob6qCq9isM=');
из этого:
INSERT INTO `accounts` (`login`
,`password`) VALUES ('1234',
'base64_encode(pack('H*',
sha1(2584560)))');
взято из:
$add=mysql_query("INSERT INTO
`accounts` (`login` ,`password`)
VALUES ('".$_POST['account']."',
'".base64_encode(pack('H*',
sha1($_POST['password'])))."');");
String password, String level) throws
IOException, SQLException,
NoSuchAlgorithmException
{
// Encode Password
MessageDigest md =
MessageDigest.getInstance("SHA");
byte[] newpass;
newpass = password.getBytes
("UTF-8");
newpass = md.digest(newpass);
// Add to Base
Connection con = null;
con =
L2DatabaseFactory.getInstance
().getConnection();
PreparedStatement statement =
con.prepareStatement("REPLACE
accounts (login, password,
accessLevel) VALUES (?,?,?)");
statement.setString(1, account);
statement.setString(2,
Base64.encodeBytes(newpass));
statement.setString(3, level);
statement.executeUpdate();
statement.close();
L2DatabaseFactory.close(con);
}
-------------------------------------
1. byte[] newpass;
2. newpass = password.getBytes
("UTF-8");
3. newpass = md.digest(newpass);
1. переводим символы в байты,
2. можно байты в utf-8 перевести
3. шифруем в ша1
INSERT INTO `accounts` (`login`
,`password`) VALUES ('1234',
'ieZV3cQYmPNlm0yUGob6qCq9isM=');
из этого:
INSERT INTO `accounts` (`login`
,`password`) VALUES ('1234',
'base64_encode(pack('H*',
sha1(2584560)))');
взято из:
$add=mysql_query("INSERT INTO
`accounts` (`login` ,`password`)
VALUES ('".$_POST['account']."',
'".base64_encode(pack('H*',
sha1($_POST['password'])))."');");
Я сказал что не надо шифровать? Простого md5 вполне может хватить.
sha1 с солью лично меня устраивает :D