我正在尝试将数百个帐户插入MySQL数据库。我无法插入明文密码,我的应用程序期望密码的SHA-1哈希值。快速在线搜索向我指出Python's hashlib libray。
这是我生成SHA-1哈希的Python代码:
import hashlib
m = hashlib.sha1();
m.update("kpVtk5y6");
m.digest();
如何在SQL查询中使用m.digest存储密码?
我的Web应用程序使用Java的MessageDigest.digest(mypassword.getBytes())方法来存储密码,因此我需要在Python中实现类似的功能,以便自动注入用户帐户。
答案 0 :(得分:0)
您不需要在Python的行尾添加分号。
根据https://stackoverflow.com/a/5241478/181772你所说的你应该做的事情。例如:
conn = MySQLdb.connect(host='localhost')
r = conn.cursor()
r.execute('INSERT INTO users (hash) VALUES (%s)', m.digest())
conn.commit()
因为m.digest()
返回的是str
,这是Python 2的等价字节。上面的链接显示那些可以插入到MySQL数据库中。
因此,如果您正在做的事情,那么您的代码中就会出现错误。