Mysql
 sql >> база данни >  >> RDS >> Mysql

Шифроване на парола преди съхраняване в базата данни?

Въпреки че отговорът по-долу е технически все още верен, php има нови препоръки по отношение на използваните алгоритми за хеширане. Тяхната препоръка , от php> =5.5.0, е да се използва password_hash и password_verify функции за хеширане и проверка на хеширани пароли. Като допълнително предимство тези функции автоматично включват индивидуализирана сол като част от върнатия хеш, така че не е нужно да се притеснявате изрично за това.

Ако не ви е грижа за извличането на действителната стойност на паролата (от криптираната стойност на базата данни), можете да стартирате еднопосочен хеш алгоритъм върху нея (като sha1). Тази функция ще върне низ с специфична дължина (хеш), който не може да се използва за намиране на оригиналния низ (теоретично). Възможно е два различни низа да създадат един и същ хеш (наречен сблъсък), но това не би трябвало да е проблем с паролите.
Пример: $pass = sha1($_REQUEST['pass']);

Едно нещо, за да го направите малко по-сигурно, е да добавите сол към хеша и да стартирате отново хеш функцията. Това прави по-трудно генерирането на хеш на парола злонамерено, тъй като стойността на солта се обработва само от страна на сървъра.
Пример: $pass = sha1(sha1($_REQUEST['pass']).sha1("[email protected]$#(%"));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете от таблицата на mysql WHERE field='$array'?

  2. Основи на системата запомни ме

  3. SQL - как да ИЗБЕРЕТЕ множество таблици и да СЪЕДИНЕТЕ няколко реда от една и съща колона?

  4. Проблем при запазването на java.util.Date в MySql с помощта на Hibernate

  5. Схема на база данни за съобщения до множество потребители