根据
crypt(3)手册,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.显然有一个名为crypt_blowfish的补丁,为glibc添加了Blowfish支持.为什么Ubuntu默认没有启用它?最后但并非最不重要的是,在Ubuntu中使C crypt()函数了解Blowfish哈希的最简单方法是什么?
First of all,if “mainline” glibc does not support Blowfish,then which glibc does?
由openwall页面上列出的分发构建,例如ALT Linux和SUSE.
如果它对你有意思,为什么它不在主线上,你可以阅读Ulrich Drepper’s article.
Why is it not enabled by default in Ubuntu?
这个问题在这里讨论:LP#1349252.
And last but not least,what is the easiest way to make the C crypt() function in Ubuntu understand Blowfish hashes?
可能,如果没有构建自己的glibc包,就无法实现.