我知道/etc/shadow 中的密码字段如果不是简单的 DES 加密,则以 ${number}$ 为前缀。我找不到将加密类型与给定数字相关联的表格。
例如,$1$ 表示 MD5。其余的我没注意到(即 SHA1、SHA256、Twofish、Blowfish 等)
我已经浏览了 passwd
和 chpasswd
以及 glib 的源代码,但没有找到我想要的东西。
是否有人介意分享一个网页链接,甚至是关于我在 glib 中哪里可以找到这样一个表格的线索?我需要在程序内以编程方式更新密码,而不使用 system() 或 exec*() 调用。我想编写原始代码,因为我想保留统一的 3 条款 BSD 许可证和我的代码的完整版权。
如果这是重复的,请原谅我。我发现了很多关于如何解析/etc/shadow 的问题,但没有一个专门询问如何识别第二个字段的加密类型。
编辑:
仅供引用,here is the announcement来自插入实现 SHA(通过 DES)并支持 BSD Blowfish 的讨论组。
最佳答案
crypt(3)
手册页的注释部分对此进行了描述。
关于地穴类型识别/etc/shadow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287123/