要求:
我有一个Ruby on rails应用程序,我需要执行以下操作。
以下字符串应使用3DES算法和工作密钥加密。ABJGTU9的加密值将是vV51P0OGXt0=
工作密钥为 A5157A0D77B24AEA868AD73288366826
以下文献中提到的3DES算法使用以下步骤进行数据加密: i.使用CBC密码模式和PKCS7填充的密钥的左侧部分加密数据。ii.使用CBC密码模式和无填充的密钥的右侧部分解密数据。iii.使用CBC密码模式和无填充的密钥的左侧部分加密数据。
我尝试了以下文章这就是我所做的,我的输出是"hsYUuA/Mo6A=\n"
预期是vV51P0OGXt0=
cipher = OpenSSL::Cipher::Cipher.new('DES-EDE3-CBC')
cipher.encrypt # Must be called before anything else
# Generate the key and initialization vector for the algorithm.
# Alternatively, you can specify the initialization vector and cipher key
# specifically using `cipher.iv = 'some iv'` and `cipher.key = 'some key'`
# cipher.pkcs5_keyivgen('SOME_PASS_PHRASE_GOES_HERE')
key = Digest::MD5.base64digest('A5157A0D77B24AEA')
cipher.key = key
data = "ABJGTU9"
output = cipher.update(data)
output << cipher.final
output
end
我不确定我是否走对了路。
问题中提到的计划有许多错误之处:
默认情况下,OpenSSL 已经使用 PKCS#7 填充进行填充,因此没有理由为此做任何特别的事情。
CBC需要一个唯一的、不可预测的IV,用于具有相同密钥的每个加密操作,这似乎在所描述的方案中缺失。
问题内容: 我正在尝试使用128位AES加密(ECB)加密/解密字符串。我想知道的是如何向其中添加/删除PKCS7填充。看起来Mcrypt扩展可以处理加密/解密,但是必须手动添加/删除填充。 有任何想法吗? 问题答案: 让我们来看看。RFC 5652(加密消息语法)中描述了PKCS#7。 填充方案本身在第6.3节中给出。内容加密过程。它的本质是说:根据需要追加许多字节以填充给定的块大小(但至少一个
我对我当前尝试访问的API的加密有以下要求: < li>PKCS7填充方法 < li>CBC加密模式 < li>AES密钥大小256,块大小128 每次我提交带有加密的API时,API似乎都有问题(不幸的是没有产生错误)。 问题: PKCS7填充方法到底是什么,可以用php实现? AES 256很好,但是块大小到底是什么意思? IV到底是做什么的?
我一直在到处寻找一些示例代码,介绍如何使用Bouncy Castle框架用标题中的加密加密一个简单的字符串。 此代码将在Windows Universal项目上运行。我以前尝试使用内置API进行加密,但在服务器上解密失败。 服务器使用 但失败的原因是: 填充无效,无法删除。 初始化向量的长度必须与块大小相同 服务器上的长度为128。我怎么能强迫它是等长的?
问题内容: 我有一个应用程序,该应用程序必须发送先由MD5然后由3DES加密的登录凭据。 我设法使用CryptoSwift通过MD5加密字符串。但是我找不到任何可以在Swift上通过3DES加密的东西。 我已经尝试过CommonCrypto。据我所知,这是用C语言编写的,但可以通过桥接头导入到目标C语言中。 我发现了一些文章和教程,它们告诉我如何通过桥接标头(警告它不适用于框架)或Model.ma
这应该是一个简单的问题,但我无法从openssl文档中找到任何示例或答案。 我想加密128位,应该适合一个加密块。 所以我调用,然后呢? 我是否调用(加密 128 位块)和(即使没有更多要加密的内容)? 还是只有?还是只有?