为什么 crypt(3) 使用 DES?

为什么 crypt(3) 使用 DES?

man 3 crypt明确指出它使用 DES。我以为 DES 已被弃用,但我没有看到任何迹象表明 crypt 将被弃用。

为什么它不使用 AES 而crypt(3)被弃用?

这是否只是“DES 对于该库的目的来说足够安全”的情况,并且程序应该使用其他库来加密重要内容?

答案1

crypt很容易被破解(事实上它是由早期 Unix 的著名贡献者 Robert Morris 编写的,作为代码破解活动的工作台),并且不应该用于任何重要的事情。

crypt联机帮助页:

DES 算法本身有一些怪癖,这使得使用 crypt() 接口成为除密码身份验证之外的任何其他用途的非常糟糕的选择。如果您计划在加密项目中使用 crypt() 接口,请不要这样做:获取一本关于加密的好书和广泛使用的 DES 库之一。

对于任何现实世界的使用,都有加密更强的替代方案可用,例如mcryptccrypt(使用 AES)。

相关内容