小编Tho*_*mas的帖子

Ruby中的单块AES解密

我需要玩一些AES片段.

我有一些密文c和一个密钥k.密文已使用AES-CBC加密,其中IV为前置.没有填充,纯文本的长度是16的倍数.

所以我这样做:

aes = OpenSSL::Cipher::Cipher.new("AES-128-CCB")
aes.decrypt
aes.key = k
aes.iv = c[0..15]
aes.update(c[16..63]) + aes.final
Run Code Online (Sandbox Code Playgroud)

它工作得很好.

现在我需要手动进行CBC模式,所以我需要对单个块进行"简单"的AES解密.

我正在尝试这个:

aes = OpenSSL::Cipher::Cipher.new("AES-128-ECB")
aes.decrypt
aes.key = k
aes.iv = c[0..15]
aes.update(c[16..31]) + aes.final
Run Code Online (Sandbox Code Playgroud)

它失败了

in `final': bad decrypt (OpenSSL::Cipher::CipherError)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

ruby openssl cryptography aes

5
推荐指数
1
解决办法
2963
查看次数

标签 统计

aes ×1

cryptography ×1

openssl ×1

ruby ×1