我正在比较PHP的crypt()和Pythons crypt()。阅读Python手册:
http://docs.python.org/2/library/crypt.html 平台: Unix 该模块实现了一个与crypt(3)例程的接口,它是一个基于修改的DES算法的单向散列函数;有关更多细节,请参见Unix手册页。可能的用途包括允许Python脚本接受用户输入的密码,或者尝试用字典破解Unix密码。 请注意,此模块的行为取决于运行系统中密码(3)例程的实际实现。因此,当前实现上的任何扩展也可以在此模块上使用。 crypt.crypt( word,salt)单词通常是用户在提示或图形界面中输入的密码。salt通常是一个随机的双字符字符串,它将用于对DES算法进行4096种方式之一的干扰。盐中的字符必须在集合中。/a-Za-Z0-9。将散列密码返回为字符串,该字符串将由与salt相同字母表中的字符组成(前两个字符表示salt本身)。
通过阅读PHP的Crypt:
http://php.net/manual/en/function.crypt.php CRYPT_SHA512 - SHA-512散列,16个字符的盐类前缀为$6$.如果盐字符串以‘starts =$’开头,则使用N的数字值来表示应该执行多少次哈希循环,就像Blowfish上的成本参数一样。默认的子弹数为5000枚,最低为1000枚,最高为999,999枚。任何超出此范围的N的选择都将被截断到最近的极限。
公平地说,我不包括Python的第三方模块.我想比较PHP ()和Python()这两种股票。
在阅读了这两篇文章并比较之后..。它看起来像是使用SHA512的PHP (),它的最大哈希数为999,999,999次,比Python()强得多。这已经确认了吗?还是我看错了。
发布于 2013-05-11 10:29:30
请注意,Python只是crypto调用的包装器,您提到的文档引用的是基本POSIX版本,可以在任何地方使用。crypto的大多数实现都在这方面做了进一步的扩展,正如文档所述:
请注意,此模块的行为取决于运行系统中密码(3)例程的实际实现。因此,当前实现上的任何扩展也可以在此模块上使用。
如果您查看glibc版本 (它是绝大多数Linux系统使用的),您会发现PHP列出的所有算法都已经实现。另外,请查看一个密码模块的源代码,以查看是否支持迭代( that )参数。
问题中的PHP列出了所有算法,所以要么作者想当然地认为它将被安装在具有最近的glibc的系统上,要么他们设法在所有系统上模拟缺失的算法。
发布于 2013-05-11 10:16:19
Python的crypt()是UNIX等效的代理,用于密码哈希;其中PHP是一个通用的加密服务提供程序;Python有模块
https://stackoverflow.com/questions/16495928
复制相似问题