Python で文字列を取得し、 Ruby で結果encrypt
を取得しようとしているのですが、文字列がめちゃくちゃです。base64_encode
base64_decode
decrypt
2つの方法に違いはありません。128 ビットの AES-CFB アルゴリズムを使用してみましたが、成功しませんでした。
ここに私のPythonコードがあります:
from Crypto.Cipher import AES
from Crypto.Util.randpool import RandomPool
from base64 import standard_b64encode, standard_b64decode
key = "abcdefghijklmnop"
en = AES.new(key, AES.MODE_CFB, "0000000000000000")
cipher = en.encrypt("apple")
cipher64 = standard_b64encode(cipher)
cipher64
内容:WqF9Zj0=
私のRubyコードは次のとおりです。
require "openssl"
require 'digest/sha2'
require 'base64'
de = OpenSSL::Cipher::Cipher.new("aes-128-cfb")
de.decrypt
de.key = "abcdefghijklmnop"
de.iv = "0000000000000000"
plain = de.update("WqF9Zj0=".unpack('m')[0])
de.final
puts plain
plain
とは異なる文字列が含まれています"apple"
。パディングの問題を避けるために、文字列の長さが 16 の場合も同じ結果が得られます。
パラメータの問題だと思いますが、何が原因かわかりません。誰にもアイデアはありますか?