OpenSSL的密碼,我想用紅寶石OpenSSL庫來產生同樣的事情,因爲這OpenSSL的命令:生成使用Ruby
$ openssl passwd -1 mypassword
現在,在我的代碼,我這樣做:
mypass = `openssl passwd -1 mypassword`
...這工作,但它似乎愚蠢。我覺得你應該可以使用OpenSSL :: Digest來獲得相同的結果。但是,我似乎無法讓它工作。
OpenSSL的密碼,我想用紅寶石OpenSSL庫來產生同樣的事情,因爲這OpenSSL的命令:生成使用Ruby
$ openssl passwd -1 mypassword
現在,在我的代碼,我這樣做:
mypass = `openssl passwd -1 mypassword`
...這工作,但它似乎愚蠢。我覺得你應該可以使用OpenSSL :: Digest來獲得相同的結果。但是,我似乎無法讓它工作。
openssl passwd -1
implements UNIX crypt(3) algorithm。實現(md5crypt)駐留在apps/passwd.c
。因此,實現代碼不是OpenSSL庫函數。正如函數註釋所示:
基於MD5的密碼算法(應該可能作爲 庫函數提供;然後靜態緩衝區將不可接受)。
所以你不會在OpenSSL :: Digest中找到它。
但是,您可能會發現其他庫很有用,如unix-crypt。
require 'openssl'
OpenSSL::Digest::MD5.hexdigest(mypassword)
如果我的密碼是「密碼」,則openssl命令會生成:$ 1 $ i7VbAY.b $ uy5kgtLn8m2daMxOBEz6p。你的Ruby openssl digest命令產生:ebe2294ecd0e0f08eab7690d2a6ee69 –