Password
為什麼 crypt(3) 使用 DES?
man 3 crypt
明確聲明它使用DES。我認為 DES 已被棄用,但我沒有看到 crypt 將被棄用的通知。為什麼它不使用 AES 而被
crypt(3)
棄用?這僅僅是“DES對於這個庫的目的來說足夠安全”的情況,並且程序應該使用其他庫來加密重要的東西嗎?
crypt
很容易被破解(它實際上是由早期 Unix 的著名貢獻者 Robert Morris 編寫的,作為程式碼破解活動的工作台)並且不應該用於任何重要的事情。從
crypt
手冊頁:DES 算法本身有一些怪癖,這使得使用 crypt() 介面對於除了密碼身份驗證之外的任何事情都是一個非常糟糕的選擇。如果您打算將 crypt() 介面用於加密項目,請不要這樣做:獲取一本關於加密的好書和一個廣泛可用的 DES 庫。
對於任何現實世界的使用,都有加密更強的替代方案可用,例如
mcrypt
和ccrypt
(使用 AES)。