如何让 Ubuntu 的 crypt(3) 支持 Blowfish?

Posted

技术标签:

【中文标题】如何让 Ubuntu 的 crypt(3) 支持 Blowfish?【英文标题】:How to make Ubuntu's crypt(3) support Blowfish? 【发布时间】:2014-09-18 20:09:10 【问题描述】:

根据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 的补丁将 Blowfish 支持添加到 glibc。为什么在 Ubuntu 中默认不启用它?最后但同样重要的是,让 Ubuntu 中的 C crypt() 函数理解 Blowfish 哈希的最简单方法是什么?

【问题讨论】:

【参考方案1】:

首先,如果“主线”glibc 不支持 Blowfish,那么哪个 glibc 支持?

由 openwall 页面上列出的发行版构建,例如ALT Linux 和 SUSE。 如果你感兴趣,为什么不在主线,你可以阅读Ulrich Drepper's article。

为什么在 Ubuntu 中默认不启用?

这里讨论过这个问题:LP#1349252。

最后但同样重要的是,让 Ubuntu 中的 C crypt() 函数理解 Blowfish 哈希的最简单方法是什么?

可能,如果不构建自己的 glibc 包,就无法实现。

【讨论】:

以上是关于如何让 Ubuntu 的 crypt(3) 支持 Blowfish?的主要内容,如果未能解决你的问题,请参考以下文章

如何让Ubuntu系统支持WebP图片格式

在 Eclipse IDE 中未定义对“crypt”的引用

如何让你的Ubuntu 14.04支持H.264视频

哪些Linux命令会让人联想到鬼...

特别注意这些Linux命令

Ubuntu中让归档管理器支持rar和7z格式