对于我目前正在进行的一个项目,我们正在尝试将一个旧的PHP/MySQL服务器迁移到一个新的Django/PostgreSQL服务器上。在PHP服务器上,我们目前正在管理密码,方法是取一个字符串,sha1(),然后将它与数据库进行比较。我知道python有一个sha1()函数,但我对密码学的了解还不足以了解这些函数在实现上是否不同,以及PHP与Django版本相比如何。有人知道吗?
非常感谢!
发布于 2013-08-20 08:46:04
PHP和Python的SHA1实现肯定会给出同样的结果。
你自己看看:
$ python
>>> import hashlib
>>> hashlib.sha1("The quick brown fox jumps over the lazy dog").hexdigest()
'2fd4e1c67a2d28fced849ee1bb76e7391b93eb12'
>>> exit()
$ php -a
php > echo SHA1("The quick brown fox jumps over the lazy dog");
2fd4e1c67a2d28fced849ee1bb76e7391b93eb12发布于 2015-08-25 07:07:39
PHP中的sha1接受一个可选的第二个参数($raw_output;默认值为false)。在Python中,有两个单独的方法来处理这个问题:hexdigest和digest。
案例1
对于$raw_output设置为false,我们使用hexdigest。
在PHP中:
sha1("My string");在Python中:
from hashlib import sha1
sha1("My string").hexdigest()案例2
对于$raw_output设置为true,我们使用digest()
在PHP中:
sha1("My string", true);在Python中:
sha1("My string").digest()https://stackoverflow.com/questions/18330243
复制相似问题