因此,我有一個網站從數據庫讀取/驗證(並寫入)密碼哈希,並且我擁有使SHA-512樣式密碼哈希的東西,那看起來像:在Perl中創建glibc 2.7樣式的Sha-512 crypt哈希
$6$GloHensinmyampOc$AxvlkxxXk36oDOyu8phBzbCfLn8hyWgoYNEuqNS.3dHf4JJrwlYCqha/g6pA7HJ1WwsADjWU4Qz8MfSWM2w6F.
該網站是基於Java的,所以我寫了一個SHA-512散列器。麻煩的是,有一堆perl cron作業運行,也需要偶爾驗證密碼哈希到數據庫,並且因爲那些在Solaris機器上運行,它的crypt不支持$ 6 $格式。
所以,當我這樣做:
printf("crypt => '%s'\n",crypt("Hello",'$1$CygnieHyitJoconf$'));
我找回理智:
crypt => '$1$CygnieHy$n9MlDleP0qmGCfpbnVYy11'
然而,如果我做
printf("crypt => '%s'\n",crypt("Hello",'$6$CygnieHyitJoconf$'));
我得到一個無用的
crypt => ''
有沒有辦法在不使用glibc的機器上在Perl中獲得SHA-512密碼哈希值? (這就是當我做了搜索主要是(「使用隱窩」)我得到告知。
我真的不想在Perl中重新實現SHA-512的密碼散列。
謝謝!
它不是一個自定義算法,因爲它是一種不同的算法。這是sha512crypt。 SHA512被設計成FAST,這與密碼散列函數所需要的相反。它遵循crypt(3)標準以及bcrypt,並且支持可變複雜性(當缺省5000輪不夠時,可變數量的'回合'使其在未來變得更加強大)。 crypt(3)總是用於密碼散列。沒有別的,永遠。 –