Bad decryption error in ruby

By executing cipher.final , he talks about the bad decrypt error. I tried to find out the problem. But I can not find. Can you tell me what is wrong with my code?

Here is my code:

 require 'openssl' require 'base64' require 'hex_string' result_h ="4fcd6b1ac843a2f8bf13f2e53dd5c1544fcd6b1ac843a2f8" key = result_h.to_byte_string encrypt_str="79994A6EF73DA76C"; cipher = OpenSSL::Cipher.new("DES-EDE3-CBC") cipher.decrypt cipher.key = key data = encrypt_str.to_byte_string res = cipher.update( data ) res << cipher.final result_h= res.unpack("H*")[0] puts result_h.inspect; 

Error:

 in `final': bad decrypt (OpenSSL::Cipher::CipherError) 
+4
source share
1 answer

I had a similar problem. In a specific example:

 require 'openssl' require 'base64' require 'hex_string' result_h ="4fcd6b1ac843a2f8bf13f2e53dd5c1544fcd6b1ac843a2f8" key = result_h.to_byte_string encrypt_str="79994A6EF73DA76C"; cipher = OpenSSL::Cipher.new("DES-EDE3-CBC") cipher.decrypt cipher.padding = 0 cipher.key = key data = encrypt_str.to_byte_string res = cipher.update( data ) res << cipher.final result_h= res.unpack("H*")[0] puts result_h.inspect; => "0befe932733d76e6" 

If you add cipher.padding = 0, it will give you the result.

+7
source

Source: https://habr.com/ru/post/1435221/


All Articles