3

FOSUserBundle を使用して php サイトを Django ユーザー モデルに移行中です。

の内容app/config/security.yml:

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

PHP サイトでのユーザー テストからの password/salt の値:

  • パスワード:3EBoIIMrD73n2y+4hMUpCq2lmJ8tHStrBweonQClP+/Jhmaw7ipLbamQJQfB87Acg45sBH3HlgnpKI+QZN7m/Q==
  • 塩:2n4fxtazv1us0csgg8s880ck4skcskg
  • 使用するパスワードはamdpower

このコードで同じハッシュを生成しようとしました:

raw_password = 'amdpower'
salt = '2n4fxtazv1us0csgg8s880ck4skcskg'

salted = '%s{%s}' % (raw_password, salt)
digest =  hashlib.sha512(salted).digest()
for i in range(5000):
   digest = hashlib.sha512(digest).digest()
print base64.b64encode(digest)
>>> wqgbbFZ/IPvwZktbmYz7inffofmT5HbRNf04BQ+w33Jgman8uVYbjWyiKzfp5EIFX2wqYGOb7hRzi5BdZlzDKw==

私が試したハッシュコードの何が問題になっていますか? どうすれば同じハッシュを生成できますか?

アップデート:

PHP 関数は次のとおりです。

解決済み:

raw_password = 'amdpower'
salt = '2n4fxtazv1us0csgg8s880ck4skcskg'

salted = '%s{%s}' % (raw_password, salt)
digest =  hashlib.sha512(salted).digest()
for i in range(4999):
    digest = hashlib.sha512('%s%s' % (digest, salted)).digest()
print base64.b64encode(digest)
>>> 3EBoIIMrD73n2y+4hMUpCq2lmJ8tHStrBweonQClP+/Jhmaw7ipLbamQJQfB87Acg45sBH3HlgnpKI+QZN7m/Q==
4

1 に答える 1

0

ここでは、Symfony がパスワードをハッシュする方法に関するシナリオを再現しました。

http://codepad.org/AhC64q4r

今では、それをPythonに変換することがすべてです.Juan :)

于 2013-02-02T20:12:49.380 に答える