如何使用Python使用字符串的SHA-1摘要创建SQL查询

时间:2012-05-25 18:16:25

标签: java python mysql sql sha1

我正在尝试将数百个帐户插入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中实现类似的功能,以便自动注入用户帐户。

1 个答案:

答案 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数据库中。

因此,如果您正在做的事情,那么您的代码中就会出现错误。