如何使用Python实现MySQL的AES_DECRYPT()
我正在尝试编写一个python代码,它的功能与MySQL的如何使用Python实现MySQL的AES_DECRYPT(),python,mysql,security,aes,Python,Mysql,Security,Aes,我正在尝试编写一个python代码,它的功能与MySQL的AES\u ENCRYPT和AES\u DECRYPT相同。 我想在MySQL和Python之间加密和解密数据 例如,我想用python对数据进行解密,python由MySQL的AES\u ENCRYPT加密 我想用MySQL的AES\u decrypt对数据进行解密,它是用Python加密的,反之亦然 我在Python中找到了一个AES\u ENCRYPT示例。 有人知道如何实现解密部分吗?我终于做到了 def mysql_aes_
AES\u ENCRYPT
和AES\u DECRYPT
相同。
我想在MySQL和Python之间加密和解密数据
例如,我想用python对数据进行解密,python由MySQL的AES\u ENCRYPT
加密
我想用MySQL的AES\u decrypt
对数据进行解密,它是用Python加密的,反之亦然
我在Python中找到了一个AES\u ENCRYPT
示例。
有人知道如何实现解密部分吗?我终于做到了
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()
我不确定你到底想要什么。问题的语言建议您使用python中MySQL提供的aes_encrypt()/aes_decrypt()函数。在本例中,您只需将参数传递给MySQL查询,MySQL负责加密/解密。但是链接的示例模仿了python中的aes_encrypt()函数,该函数与MySQL无关。那么,你实际上需要哪种方法?你可以通过提问来提供更多关于你需求的细节。我编辑了我的问题。有什么理由让你的生活变得复杂吗?坚持一种或另一种方法。顺便说一句,用于加密数据的参数也应用于解密。AES是对称密钥加密,我有一个MySQL的sql文件,里面有一些加密数据。我想用Python阅读它,而不用MySQL。对我知道AES需要一个密钥,我知道MySQL中使用的密钥。嗨,谢谢你的代码。当我使用它时,我在代码中看到一个问题<代码>UnicodeDecodeError:“ascii”编解码器无法解码位置0:序号不在范围(128)中的字节0xf3。此错误源于最后一行:
返回cipher.decrypt(val).decode()
。如果我将其保留为cipher.decrypt(val)
,则没有错误,但字符不可读。