问题标签 [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.

0 投票
0 回答
348 浏览

python - 如何在纯 python 2.7 中解密河豚 CBC 数据?

我正在尝试在 Python 2.7 中解密河豚 CBC(密码块链接)加密数据。我试过这个模块,但它不接受字节字符串作为初始化向量,如pycrypto,只接受整数。我的初始化向量以字节字符串的形式存在,它适用于 pycrypto。但是在 kodi 插件中需要解密,并且 kodi 只允许纯 python 脚本。无法编译例如 pycrypto。如何在 Python 2.7 中实现河豚 CBC 解密?

0 投票
1 回答
659 浏览

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 加密的东西。

0 投票
0 回答
588 浏览

openssl - 使用 OpenSSL 的 aes ccm 代码错误

这是 aes-ccm 示例代码。我使用 c 语言打开了我的视觉工作室。但它是行不通的。我认为问题点是void handleErrors(void); 如何解决这个问题?请给我建议。谢谢

0 投票
1 回答
539 浏览

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,我没有收到错误。:?

0 投票
1 回答
564 浏览

python-3.x - Python3 PyCrypto 在解密长消息时产生 Valueerror

嗨,

我必须用 DES 和 XOR 解密 DES 加密的消息。
当我解密一条 24 字节长的消息时,它运行正常。
但是如果有 40 个字节或更多,则会产生如下错误:

我使用以下代码加密消息:

加密工作没有错误。

但是当我尝试使用此代码解密加密消息时:

解密长消息时出了什么问题?

谢谢

0 投票
0 回答
414 浏览

python - NodeJS 和 Python 之间的 AES 128 CBC 解密结果不同

目前我尝试重新实现一个用python编写的网络设备协议库。在这种情况下,我必须处理加密和加密字符串。现在,加密工作正常。我得到了与 python 代码相同的结果,并且设备也与我进行了通信。

现在,我目前感到惊讶和困惑,同一个字符串的解密确实会导致不同的长度。

我写了2个样本:

我得到结果

nodeJS中的等效代码

抛出结果

那么,这里有什么问题?为什么加密数据中缺少一部分?

0 投票
1 回答
261 浏览

c# - File_Decryption - 在解密文件中发现垃圾字符

我有一个加密工具来加密文件,当我研究加密文件时,发现它在加密文件中写入 .PEM 的名称。

我编写如下 C# 代码,这很好,但是对于大文件,中间会出现一些垃圾字符,例如,

我的解密代码是这样的: -

1) - 代码几乎可以正常工作,但在某处我发现 8 字节的垃圾字符替换了真实文本。 [ 主要问题]

2) - 不知道在加密过程中使用什么填充方案,我尝试使用零填充模式解密。

注意 - 文件只包含字符 a (HEX VALUE = 61) 这里的任何建议都会很高兴听到

0 投票
0 回答
149 浏览

c++ - 2个字符串之间的C ++ xor Null CBC

我尝试使用 Crypto++ 为 AES 实现 CBC 方案。我的问题来自这里:当我尝试“异或”2个字符字符串时,当我尝试与自己异或一个字符时,我遇到了一些问题。

来电:

其中 plainTextBlock 是纯文本的 16 字节块,iv 是初始化向量(16 字节)。之后,假设我的纯文本长度为130,填充144后,加密后必须为288。因此,由于异或,无法达到该维度。请帮忙!谢谢!

0 投票
1 回答
1329 浏览

go - Golang:如何使用 DES 和 CBC 加密 5 个字符长的纯文本?

目前正在尝试将 5 个字符长的明文加密为 12 个字符的加密字符串。我希望能够指定唯一的 IV(不是随机生成的)、唯一的密钥并使用 DES。我当前的代码要求明文长度为 8 个字符(5 个字符名称加 3 个空格)。

0 投票
1 回答
142 浏览

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?