Je travaille sur la mise à niveau de la version ruby et rails de mon application. J'utilisais les rails 3.2 et ruby "1.9.3", pour cette version Gibberish
fonctionne bien sur heroku. Après avoir mis à niveau les rails 4.2 et Ruby 2.2.0, Gibberish ne fonctionne pas et par une erreur sur heroku
.
J'ai donc créé une nouvelle application dans heroku et configuré 4.2 et 2.2.0 et ensuite testé. Là, le charabia fonctionne sans erreur. Mais je n’aime pas configurer une nouvelle application. Parce que j’ai bien configuré mon application existante. Y a-t-il un point que j’ai manqué? Voici ...
irb(main):002:0> Gibberish::AES.new("12345").encrypt("data")
NotImplementedError: pbkdf2_hmac() function is unimplemented on this machine
from /app/vendor/bundle/ruby/2.2.0/gems/gibberish-2.0.0/lib/gibberish/aes.rb:140:in `pbkdf2_hmac"
from /app/vendor/bundle/ruby/2.2.0/gems/gibberish-2.0.0/lib/gibberish/aes.rb:140:in `encrypt"
from /app/vendor/bundle/ruby/2.2.0/gems/gibberish-2.0.0/lib/gibberish/aes.rb:100:in `encrypt"
from (irb):2
from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/console.rb:110:in `start"
from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/console.rb:9:in `start"
from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:68:in `console"
from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!"
from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>"
from bin/rails:10:in `require"
from bin/rails:10:in `<main>"
Note: Je travaille sur la dernière version Gibberish
Merci d'avance!
Réponses:
0 pour la réponse № 1Prior to Gibberish 2.0, the default encryption mode was CBC. But now not!.
Je suis venu la solution après avoir vérifié laformat du cryptage. Gibberish travaille maintenant sur la version OpenSSL. Gibberish 2 fonctionnera dans la dernière version sur OpenSSl. Si vous voulez travailler avec l'ancienne version de ssl, alors vous pouvez CBC
.
Gibberish::AES::CBC.new("12345").encrypt("data")
Gibberish 1.4 va générer
Gibberish::AES.new("p4ssw0rd").enc("Some top secret data")
#=> U2FsdGVkX187oKRbgDkUcMKaFfB5RsXQj/X4mc8X3lsUVgwb4+S55LQo6f6NnIDMX
mais maintenant, CBC générera cette sortie formatée.
Je recommande de mettre à jour openssl dans heroku.