MySQL中的ID通常用于唯一标识表中的每一行记录。对ID进行唯一加密通常是为了保护数据的隐私性和安全性,防止ID被轻易猜测或滥用。
以下是一个使用AES对称加密和解密MySQL ID的示例代码:
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
# 密钥(需要妥善保管)
key = b'ThisIsASecretKey1234567890123456'
def encrypt_id(id):
cipher = AES.new(key, AES.MODE_CBC)
ct_bytes = cipher.encrypt(pad(id.encode('utf-8'), AES.block_size))
iv = base64.b64encode(cipher.iv).decode('utf-8')
ct = base64.b64encode(ct_bytes).decode('utf-8')
return iv + ':' + ct
def decrypt_id(encrypted_id):
iv, ct = encrypted_id.split(':')
iv = base64.b64decode(iv)
ct = base64.b64decode(ct)
cipher = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher.decrypt(ct), AES.block_size).decode('utf-8')
return pt
# 示例
id = '12345'
encrypted_id = encrypt_id(id)
print(f'Encrypted ID: {encrypted_id}')
decrypted_id = decrypt_id(encrypted_id)
print(f'Decrypted ID: {decrypted_id}')
通过以上方法,可以在MySQL中对ID进行唯一加密,从而提高数据的安全性和隐私保护。
领取专属 10元无门槛券
手把手带您无忧上云