Frage

I need to check data in sha512 encryption by MYSQL query and PHP

I can do it by md5 like this :

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

But , how about in sha512?

Regards

War es hilfreich?

Lösung

mysql 5.5+

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

More details :

SHA2(str, hash_length)

Calculates the SHA-2 family of hash functions (SHA-224, SHA-256, SHA-384, and SHA-512). The first argument is the cleartext string to be hashed. The second argument indicates the desired bit length of the result, which must have a value of 224, 256, 384, 512, or 0 (which is equivalent to 256). If either argument is NULL or the hash length is not one of the permitted values, the return value is NULL. Otherwise, the function result is a hash value containing the desired number of bits. See the notes at the beginning of this section about storing hash values efficiently.

The return value is a nonbinary string in the connection character set.

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

This function works only if MySQL has been configured with SSL support. See Section 6.3.9, “Using SSL for Secure Connections”.

SHA2() can be considered cryptographically more secure than MD5() or SHA1().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top