0

何百ものアカウントをMySQLデータベースに挿入しようとしています。平文のパスワードを挿入できません。アプリケーションはパスワードにSHA-1ハッシュを期待しています。簡単なオンライン検索で、Python のhashlib ライブラリを見つけました。

SHA-1 ハッシュを生成する Python コードは次のとおりです。

import hashlib
m = hashlib.sha1();
m.update("kpVtk5y6");
m.digest();

SQL クエリで m.digest を使用してパスワードを保存するにはどうすればよいですか?

私の Web アプリケーションは Java の MessageDigest.digest(mypassword.getBytes()) メソッドを使用してパスワードを保存するため、ユーザー アカウントを自動挿入するために Python で同様のものを実装する必要があります。

4

1 に答える 1

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()

Python 2 のバイトに相当するm.digest()a を返すためです。str上記のリンクは、それらを MySQL データベースに挿入できることを示しています。

それがあなたがすでに行っていることなら、コードに間違いがあるように思えます。

于 2012-05-26T01:15:40.283 に答える