我正在尝试使用 Python 生成一个字符串,然后encrypt
使用Ruby 生成结果,但是字符串被弄乱了。base64_encode
base64_decode
decrypt
我看不出这两种方法有什么区别。我尝试使用 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,我会得到相同的结果,以避免填充问题。
我想这是一个参数问题,但我不知道是什么。有人有想法吗?