/ Funkcia NotImplementedError: pbkdf2_hmac () sa na tomto stroji neuplatňuje - rubín na koľajniciach, rubín na koľajniciach-3, rubín-na-koľajniciach-4, heroku

Na tomto stroji nie je implementovaná funkcia NotImplementedError: pbkdf2_hmac () - rubínovo-na-koľajniciach, rubínovo-na-koľajniciach-3, rubíno-na-koľajniciach-4, heroku

Pracujem na modernizácii verzie rubínov a zábradlí do mojej aplikácie. Používam koľajnice 3.2 a rubín "1.9.3", pre túto verziu Gibberish pracuje na heroku. Po modernizácii koľajníc 4.2 a ruby ​​2.2.0, Gibberish nepracoval a neprešiel chybou heroku.

Takže som vytvoril novú aplikáciu v heroku a nakonfiguroval 4.2 a 2.2.0 a potom sa testuje. Tam Gibberish funguje bez chyby. Ale nemám rada nakonfigurovať novú aplikáciu, pretože som si dobre nakonfigurovala na mojej existujúcej aplikácii.

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>"

Poznámka: Pracujem na poslednej verzii Gibberish

Vopred ďakujem!

odpovede:

0 pre odpoveď č. 1

Prior to Gibberish 2.0, the default encryption mode was CBC. But now not!.

Prišiel som po riešení po overeníformát šifrovania. Teraz Gibberish pracuje na verzii OpenSSL. Gibberish 2 bude pracovať v najnovšej verzii na OpenSSl. Ak chcete pracovať so starou verziou SSL, potom musíte CBC.

Gibberish::AES::CBC.new("12345").encrypt("data")

Gibberish 1.4 generuje

Gibberish::AES.new("p4ssw0rd").enc("Some top secret data")
#=> U2FsdGVkX187oKRbgDkUcMKaFfB5RsXQj/X4mc8X3lsUVgwb4+S55LQo6f6NnIDMX

ale teraz CBC bude generovať tento formátovaný výstup.

Odporúčam aktualizovať openssl v heroku.