2010-08-08 99 views
1

我正在使用OS X Snow Leopard,並且需要以編程方式生成MD5crypt()密碼以與Ubuntu 8.04上生成的密碼相匹配(該平臺上的crypt()使用MD5,如果鹽開始於$ 1 $,因爲它使用glibc2中具有該功能的crypt()。在OS X上生成MD5密碼

在OS X上有一個md5crypt例程,但不幸的是,它僅僅是Tcl。

一個痛苦的選擇是拆開openssl passwd命令的代碼並根據它寫我自己的代碼。

我猜測,試圖編譯glibc2並與OS X上的鏈接可能幾乎不可能,如果不是不可能的話。

有沒有人跑過這個問題解決了它?還是有建議? (我會提出一個錯誤,並要求Apple添加它)

+0

只是要注意:雷達8285595已經提交要求蘋果增強的crypt( )。 – wadesworld 2010-08-08 17:12:44

回答

0

爲了回答我的問題,我目前沒有看到在OS X上解決這個問題的簡單方法,它不涉及自己的實現。

,向家庭進一步推動這一點,這裏是蘋果公司對我的增強請求響應:

目前已經存在的Mac OS X)僅用於Unix的 符合其他密碼 加密方案,以 隱窩( 。鑑於此 超載的crypt()與MD5 散列的是非標準,沒有 計劃改變實施

現在我們停止這種錯誤,因爲我們的 工程師意識到這個問題,並 將繼續跟蹤它離線。 A 不同的解決方案可能會在未來被考慮到 。

所以,如果你需要OS X上的MD5-crypt(),你將不得不推出自己的產品,直到它成爲標準。

0

也許看看SSCrypto.framework(BSD許可的OpenSSL庫包裝器)或PolKit!

http://osx.hyperjeff.net/Apps/apps?f=openssl

此外,您還可以通過使用MacPorts得到libmd(端口信息libmd)。

最後但並非最不重要的是osxcrypt項目(這是一個模塊化設計的內核模塊)。

OSXCrypt Framework基於實現模塊化內核模塊的範例,該模塊可以與其他cyphers一起使用。例如,在mac上實現dm-cryppt現在非常簡單。

0

在OSX上,嘗試使用終端的openssl命令。這是示例語法..

  • 實施例1:

    openssl passwd -1 -salt THE_SALT THE_PASSWORD $1$THE_SALT$dPJ6geFVt46feYgFzPgWE.

-1標誌使用$ 1個$前綴(標準MD5)。 -apr1標誌使用$ apr1 $表示法(Apache算法)。

  • 例2:

    openssl passwd -apr1 -salt THE_SALT THE_PASSWORD $apr1$THE_SALT$y28/ZvW2ge6QfRIZQpO82/

更多選項/幫助,請鍵入openssl passwd --help