根据crypt(3) http://man7.org/linux/man-pages/man3/crypt.3.html手册中,Blowfish(由 $2a$ 前缀表示)是受支持的密码方法之一:
ID | Method
─────────────────────────────────────────────────────────
1 | MD5
2a | Blowfish (not in mainline glibc; added in some
| Linux distributions)
5 | SHA-256 (since glibc 2.7)
6 | SHA-512 (since glibc 2.7)
然而这部分说Blowfish(不在主线 glibc 中;在某些 Linux 发行版中添加)令人困惑且记录不足,所以我有几个问题。
首先,如果“主线”glibc 不支持 Blowfish,那么哪个 glibc 可以呢?
Ubuntu 14.04使用glibc 2.19,打包在libc6 / libc6-dev包。假设这是“主线”glibc,则不支持 Blowfish。貌似有一个补丁叫地穴河豚 http://www.openwall.com/crypt/向 glibc 添加 Blowfish 支持。为什么 Ubuntu 中没有默认启用它?最后但并非最不重要的一点是,让 Ubuntu 中的 C crypt() 函数理解 Blowfish 哈希的最简单方法是什么?
首先,如果“主线”glibc 不支持 Blowfish,那么哪个 glibc 可以呢?
由 openwall 页面上列出的发行版构建,例如ALT Linux 和 SUSE。
如果您感兴趣,为什么它不在主线中,您可以阅读乌尔里希·德雷珀的文章 http://www.akkadia.org/drepper/sha-crypt.html.
为什么 Ubuntu 中没有默认启用它?
这个问题在这里讨论过:LP#1349252 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1349252.
最后但并非最不重要的一点是,让 Ubuntu 中的 C crypt() 函数理解 Blowfish 哈希的最简单方法是什么?
如果不构建自己的 glibc 包,可能就没有办法做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)