APIプロバイダーからいくつかのテストデータキー/テキスト/暗号化を取得し、以下の関数で同じ暗号化結果を生成しようとしていますが、結果は241桁の最後の16桁で提供されたものとは異なります。あなたは考えを持っていますか、その理由は何でしょうか?'bf-ecb'が正しいモードであることを確認し、urlエンコードを試しましたが、これまでのところ成功していません。
require 'openssl'
def encrypt(key, data)
cipher = OpenSSL::Cipher::Cipher.new('bf-ecb').send(:encrypt)
cipher.key = key
result = cipher.update(data) << cipher.final
hexed = ''
result.each_byte { |c| hexed << '%02x' % c }
hexed.upcase
end
アップデート
また、サンプル結果を復号化しようとすると、OpenSSL :: Cipher::CipherError「不正な復号化」が発生します