我剛剛將我的Mac升級到Snow Leopard,並啓動並運行了Rails環境。唯一的區別 - OSX旁邊 - 與我以前的安裝是我現在運行ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]
(雪豹默認),而不是1.8.6。如何解決OpenSSL的棄用警告:: Cipher :: Cipher#encrypt
現在我看到有關的OpenSSL廢棄警告,當我運行我的代碼:
warning: argumtents for OpenSSL::Cipher::Cipher#encrypt and OpenSSL::Cipher::Cipher#decrypt were deprecated; use OpenSSL::Cipher::Cipher#pkcs5_keyivgen to derive key and IV
我的代碼,這是造成這些警告實施例在第4行(其解碼加密的字符串):
1. def decrypt(data)
2. encryptor = OpenSSL::Cipher::Cipher.new('DES-EDE3-CBC')
3. key = "my key"
4. encryptor.decrypt(key)
5. text = encryptor.update(data)
6. text << encryptor.final
7. end
我很努力去理解我能如何解決這個問題,Google並沒有真正幫助。我是否應該嘗試降級到Ruby 1.8.6(如果是的話,這樣做的最好方法是什麼?),我應該試着隱藏警告(把我的頭埋在沙中?),還是有一個簡單的解決方法可以在代碼中應用?
請參見下面的註釋關於調用'decrypt'和'pkcs5_keyivgen'的排序。 – jrdioko 2011-01-21 23:25:07
另請參閱新的[文檔](https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl.c#L409)。 – jrdioko 2011-01-25 18:10:21