Próbuję odszyfrować kilka haseł do migracji bazy danych. Mam trochę starszego kodu Railsów (właściwie skrypt Runner), który odszyfrowuje je w porządku. Ale wprowadzenie tego samego kodu do zadania Rake powoduje, że zadanie kończy się niepowodzeniem z ... niezdefiniowaną metodą `to_a 'dla" tajnego klucza ": String ...Railsy: dlaczego wywołanie to_a na ciągu nie jest poprawne w zadaniu rake?
Dlaczego wywoływanie to_a na łańcuchu było nieprawidłowe w zadaniu Rake, ale całkowicie poprawne w skrypcie Runner?
require 'openssl'
KEY = 'secretkey'
namespace :import do
task :users => :environment do
def decrypt_password(pw)
cipher = OpenSSL::Cipher::Cipher.new('bf-ecb')
cipher.decrypt
cipher.key = KEY.to_a.pack('H*') <<--------- FAILS RIGHT HERE on to_a
data = data.to_a.pack('H*')
data = cipher.update(data)
data << cipher.final
unpad(data)
end
end
... other methods
end
(Rails 3.0.0, Ruby 1.9.2)
co czy porażka? – zsalzbank