如何通过Python使用MySQL的AES_DECRYPT()实现

Ats*_*kai 2 python mysql security aes

我正在尝试编写一个具有AES_ENCRYPTAES_DECRYPTMySQL 相同功能的 python 代码。 https://dev.mysql.com/doc/refman/5.6/ja/encryption-functions.html

我想在MySQL和Python之间加密和解密数据。

比如我想用python解密数据,用AES_ENCRYPTMySQL加密。

我想用AES_DECRYPTMySQL解密数据,用Python加密数据,反之亦然。

我在Python中找到了一个例子AES_ENCRYPThttps://www.maykinmedia.nl/blog/2012/nov/15/mysql-aes_encrypt-python/

有谁知道如何实现解密部分?

Ats*_*kai 5

我终于做到了。

def mysql_aes_decrypt(val, key):

    def mysql_aes_key(key):
        final_key = bytearray(16)
        for i, c in enumerate(key):
            final_key[i % 16] ^= ord(key[i])
        return bytes(final_key)

    k = mysql_aes_key(key)

    cipher = AES.new(k, AES.MODE_ECB)

    return cipher.decrypt(val).decode()
Run Code Online (Sandbox Code Playgroud)