问题标签 [cbc-mode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 从 PHP RIJNDAEL_128 CBC 解密 node.js 中的字符串
我正在尝试使用 node.js 解密一个字符串,该字符串以前由第三方软件在 CBC 模式下使用 PHP RIJNDAEL_128 加密。
这是以下 PHP 代码的交互式链接,在沙箱中,您可以自己编译和查看。http://sandbox.onlinephpfunctions.com/code/504a7d052c5b123fac8103a073c05c2ff5f80571
PHP 源代码:
这是我在 node.js 中的实现:不工作,请参阅下面的工作解决方案
Invalid key length
我已经尝试了很多事情,但我在其他错误消息之间迷路了。我不太明白的一件事是,KEY
显然用于加密数据的长度azertyuiolskzif
为 15 个字符,而大多数脚本使用所需的 32 个字符的字符串……也许 PHP 不需要 32 个字符的字符串,但 Node 需要?
或者可能与128和256之间的差异有关。还是由于PHp和Node实现之间的填充差异?
我尝试遵循Encrypt string in PHP and decrypt in Node.js 中给出的建议,但即便如此,我还没有成功加密节点中的数据。
编辑:
经过更多的挖掘(并感谢答案中的解释),我终于在 Node.js 中进行了 crypt/decrypt 工作。但是我还没有成功解密 PHP 加密的东西。
openssl - 使用 OpenSSL 的 aes ccm 代码错误
这是 aes-ccm 示例代码。我使用 c 语言打开了我的视觉工作室。但它是行不通的。我认为问题点是void handleErrors(void);
如何解决这个问题?请给我建议。谢谢
crypto++ - 使用 Crypto++ 进行手动 CBC 加密处理
我正在尝试在 CBC 模式下进行手动加密,但仍然使用 Crypto++,只是想知道我可以手动进行。CBC算法是(AFAIK):
所以我尝试用 Crypto++ 来实现它。我有一个仅包含字母数字字符的文本文件。测试1是逐块读取文件(16字节)并使用CBC模式手动加密,然后总结密码。测试 2 使用 Crypto++ 内置的 CBC 模式。
测试 1
这是我的 encrypt() 函数,因为我们只有一个块,所以我使用 ECB (?) 模式
这是 100% Crypto++ 制作的解决方案:
测试 2
测试 1 和测试 2 的结果不同。事实上,来自测试 1 的密文包含测试 2 的结果。示例:
测试 1 的结果 aaa[....]bbb[....]ccc[...]...
测试 2(Crypto++ 内置 CBC)的结果:aaabbbccc...
我知道 xor() 函数可能会导致与“sameChar ^ sameChar = 0”相关的问题,但我的代码中是否存在与算法相关的问题?
这是我在 jww 的第一个解决方案之后的测试 2.1。
它抛出一个错误:
AES-CRPP.exe 中 0x7407A6F2 处未处理的异常:Microsoft C++ 异常:内存位置 0x00EFEA74 处的 CryptoPP::InvalidDataFormat
我只在使用 BlockPaddingSchemeDef::NO_PADDING 时出现此错误,尝试删除 BlockPaddingSchemeDef 或使用 BlockPaddingSchemeDef::DEFAULT_PADDING,我没有收到错误。:?
python-3.x - Python3 PyCrypto 在解密长消息时产生 Valueerror
嗨,
我必须用 DES 和 XOR 解密 DES 加密的消息。
当我解密一条 24 字节长的消息时,它运行正常。
但是如果有 40 个字节或更多,则会产生如下错误:
我使用以下代码加密消息:
加密工作没有错误。
但是当我尝试使用此代码解密加密消息时:
解密长消息时出了什么问题?
谢谢
python - NodeJS 和 Python 之间的 AES 128 CBC 解密结果不同
目前我尝试重新实现一个用python编写的网络设备协议库。在这种情况下,我必须处理加密和加密字符串。现在,加密工作正常。我得到了与 python 代码相同的结果,并且设备也与我进行了通信。
现在,我目前感到惊讶和困惑,同一个字符串的解密确实会导致不同的长度。
我写了2个样本:
我得到结果
nodeJS中的等效代码
抛出结果
那么,这里有什么问题?为什么加密数据中缺少一部分?
c# - File_Decryption - 在解密文件中发现垃圾字符
我有一个加密工具来加密文件,当我研究加密文件时,发现它在加密文件中写入 .PEM 的名称。
我编写如下 C# 代码,这很好,但是对于大文件,中间会出现一些垃圾字符,例如,
我的解密代码是这样的: -
1) - 代码几乎可以正常工作,但在某处我发现 8 字节的垃圾字符替换了真实文本。 [ 主要问题]
2) - 不知道在加密过程中使用什么填充方案,我尝试使用零填充模式解密。
注意 - 文件只包含字符 a (HEX VALUE = 61) 这里的任何建议都会很高兴听到
c++ - 2个字符串之间的C ++ xor Null CBC
我尝试使用 Crypto++ 为 AES 实现 CBC 方案。我的问题来自这里:当我尝试“异或”2个字符字符串时,当我尝试与自己异或一个字符时,我遇到了一些问题。
来电:
其中 plainTextBlock 是纯文本的 16 字节块,iv 是初始化向量(16 字节)。之后,假设我的纯文本长度为130,填充144后,加密后必须为288。因此,由于异或,无法达到该维度。请帮忙!谢谢!
go - Golang:如何使用 DES 和 CBC 加密 5 个字符长的纯文本?
目前正在尝试将 5 个字符长的明文加密为 12 个字符的加密字符串。我希望能够指定唯一的 IV(不是随机生成的)、唯一的密钥并使用 DES。我当前的代码要求明文长度为 8 个字符(5 个字符名称加 3 个空格)。
java - Is there any secure improvement if I hash IV value?
I generate randomly IV value everytime I encrypt when doing AES/CBC.
And I concat IV Value to cipher byte everytime I encrypt.
Is there any secure improvement if I hash (SHA-256) IV value before concat to cipher byte?