Python。输出加密密码河豚AES既不能转换成unicode(如sqlite所需),也不能转换成hex

2024-04-19 17:08:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我决定做一个新的Python应用程序。这是我的加密功能:

from Crypto.Cipher import AES
def encPass(login, password):
    keyPhr=os.environ['HOME']+login
    hashObj = hashlib.md5()
    hashObj.update(keyPhr)
    keyPhr=hashObj.hexdigest()
    keyObj=AES.new(keyPhr)
    encPwd=keyObj.encrypt(password+'pssd')
    return encPwd

如您所见,它获取登录和传递,并通过绑定到pc来加密pass

问题是,当我试图将encPws提供给sqlite3并将其插入到一个表中时,它说:

^{pr2}$

如果我尝试将encPwd放入unicode()或hex()中:

TypeError: hex() argument can't be converted to hex
UnicodeDecodeError: 'utf8' codec can't decode byte 0x9c in position 0: unexpected code byte

我想是因为我是新手,但我该怎么办?用河豚代替AES也一样


Tags: from功能应用程序loginpasswordbytecryptocan
1条回答
网友
1楼 · 发布于 2024-04-19 17:08:05

您可以使用buffer并将encPwd作为blob插入。在

或者可以使用类似base64的方法将encPwd转换为ASCII(这是UTF8的一个子集),以便可以将其作为字符串插入。在

相关问题 更多 >