1. SHA2
mysql>SELECT SHA2('apple', 512); +------------------------------------------------------------------+ | SHA2('apple', 512) | +------------------------------------------------------------------+ | 6a106a7d792f0c2f7a3df3e166d7ea0e609d296a7ce1fbcfeec91fd9d51c794 | +------------------------------------------------------------------+
SHA2是一种加密散列函数,可以生成一个固定长度的哈希值。MySQL支持SHA2算法的不同位数:SHA2-224,SHA2-256,SHA2-384和SHA2-512。可以使用SHA2函数对敏感数据进行加密,如密码等。
2. AES_ENCRYPT
mysql>CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), email VARBINARY(200) ); mysql>INSERT INTO users (id, name, email) VALUES ( 1, 'Alice', AES_ENCRYPT('alice@example.com', 'secret_key') ); mysql>SELECT id, name, AES_DECRYPT(email, 'secret_key') FROM users; +----+-------+------------------------+ | id | name | AES_DECRYPT(email, 's') | +----+-------+------------------------+ | 1 | Alice | alice@example.com | +----+-------+------------------------+
AES_ENCRYPT是一种对称加密,使用相同的秘钥可以加密和解密数据。可以使用AES_ENCRYPT和AES_DECRYPT函数来加密和解密二进制数据,如邮件地址、身份证号码等。
3. MD5
mysql>SELECT MD5('hello'); +----------------------------------+ | MD5('hello') | +----------------------------------+ | 5d41402abc4b2a76b9719d911017c592 | +----------------------------------+
MD5是一种散列函数,可以将任意长度的消息映射为128位的哈希值。但是,MD5存在哈希碰撞的风险,因此不推荐使用MD5对密码等敏感数据进行加密。
以上就是MySQL提供的加密方式,选择适合的加密方法可以更好地保护数据的安全性。