mysql проверяет данные в шифровании sha512

Мне нужно проверить данные в шифровании sha512 запросом MYSQL и PHP

Я могу сделать это с помощью md5 следующим образом:

SELECT * FROM text WHERE md5(id) = '$id'

А как насчет sha512?

С Уважением


person absfrm    schedule 20.04.2013    source источник


Ответы (1)


MySQL 5.5+

SELECT * FROM text WHERE SHA2(id, 512) =  '$id'

Подробнее:

SHA2(str, hash_length)

Вычисляет семейство хеш-функций SHA-2 (SHA-224, SHA-256, SHA-384 и SHA-512). Первый аргумент — это строка открытого текста, которую нужно хэшировать. Второй аргумент указывает желаемую битовую длину результата, который должен иметь значение 224, 256, 384, 512 или 0 (что эквивалентно 256). Если любой из аргументов имеет значение NULL или длина хэша не является одним из допустимых значений, возвращаемое значение равно NULL. В противном случае результатом функции является хеш-значение, содержащее желаемое количество битов. См. примечания в начале этого раздела об эффективном хранении хеш-значений.

Возвращаемое значение представляет собой недвоичную строку в наборе символов соединения.

mysql> SELECT SHA2('abc', 224);
        -> '23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7'

Эта функция работает, только если MySQL настроен с поддержкой SSL. См. Раздел 6.3.9, «Использование SSL для безопасных соединений».

SHA2() можно считать криптографически более безопасным, чем MD5() или SHA1().

person Damith    schedule 20.04.2013