问题标签 [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 投票
2 回答
4808 浏览

encryption - Explanation of Self-healing property of CBC (Cipher Block Chaining)

Wikipedia:

CBC mode has the self-healing property: if one block of the cipher is altered, the error propagates for at most two blocks.

Made up Example:

Let the block size be 64 bits. The original plaintext is:

The correct cipher text is:

If the ciphertext is corrupted, with the byte '0x4b' changed to '0x4c':

Then it is decrypted to:

Question:

I am having hard time understanding the self-healing property of CBC (Cipher Block Chaining), I thought that a made up example might help but I am now more confused. Any help would be great.

0 投票
1 回答
3976 浏览

java - JAVA:如何加密和查看图像

我必须使用 Java 加密图像。我正确加密了图像,但我不知道如何将其可视化,因为当我尝试打开文件时,系统告诉我图像太长或文件损坏。在没有元数据的情况下,如何使用图片正文?

谢谢!!

0 投票
1 回答
6689 浏览

java - cipher.update 在 java 中做了什么?

我正在实施 DES - CBC。我对做什么cipher.init和做什么cipher.update感到困惑cipher.dofinal。我只是使用 init 来设置密钥并dofinal获得结果。我不使用更新。那是对的吗?

使用UTF-8ASCII编码时,结果有何不同?

这是我的代码:

0 投票
1 回答
236 浏览

java - 为什么加密时会有额外的块?

我正在传递 20 字节长的输入数据,java AES-CBC 返回 48 字节而不是 32 字节,这是我认为由于填充而应该输出的。我的密钥长 16 个字节。

样本输出:

向量:c6ab4c2b0b220b8b3520bd20e3741a1e

密码:3dd2cb1f94c99940fd4f7d1a503a091844dc16c8bae480d748453859701b72fecd949e158d2103ba99560d64ee65f6cb

密钥:bc03f2e674a0d482d0c6677d211eb14e

0 投票
1 回答
1084 浏览

ios - ios 3DES 加密/解密 CBC

我需要一些有关此 3DES 解密的帮助。我已经创建了一些用于解密的代码,但我无法让它正常工作。这是我第一次玩加密,我不知道我在这里到底做错了什么。

我正在从服务器接收解密密钥(这是密钥的示例值:0F7BC98767FF9A01F2B2AD1CD644AD33 - 它是随机生成字节的十六进制表示)。

这是我用来解密消息的方法:

-- 编辑 --- 这是我从该方法收到的输出:

bufferPtr: ÕÏÁU

--- 编辑 2 ----- 我将密钥长度固定为 24 字节长,但现在最终结果是空字符串

0 投票
1 回答
2449 浏览

python-3.x - 使用 PyCrypto 使用 32 字节初始化向量解密 MCRYPT_RIJNDAEL_256

我有在 PHP 中加密的数据,如下所示:

我需要在 Python 3 应用程序中解密这些数据。我正在尝试使用 PyCrypto,但我对其他库持开放态度。我希望以下工作:

我的初始化向量是 32 字节,并抛出以下异常:

如何将 PyCrypto 设置为使用 32 字节初始化向量和 32 字节块大小?或者,是否有其他库可用于解密数据?

0 投票
1 回答
420 浏览

encryption - 我们可以在 AES 中使用一种模式进行加密,另一种模式进行解密吗

服务器端使用 AES/ECB/PKCS5Padding 加密模式,在客户端(移动设备)是否可以使用 AES/CBC/PKCS5Padding 对其进行解密。或者我们需要对服务器端和客户端使用相同的模式?

请指教。

0 投票
1 回答
164 浏览

java - 在 python 中为 AES CBS 加密数据获取 javax.crypto.BadPaddingException

我正在将代码从 java 移植到 python,这是我在 python 中的代码

我在 Java 中的服务器端代码抛出一个javax.crypto.BadPaddingException: Given final block not properly padded. 这是我在服务器上解密的java代码:

java中生成加密有效载荷的相同代码是

0 投票
1 回答
889 浏览

c# - 加密 AES 256 输入明文长度问题

我的安全团队希望我使用 AES256 密钥强度和 CBC 模式。我的代码只有在更改为 256 CBC 和块大小为 128 后现在输入长度为 32 个字母的输入明文时才有效。

如果我输入“这是一个测试”(不是 32 个字符长),我会收到:

System.Security.Cryptography.CryptographicException:输入数据不是一个完整的块。

如果我输入:“ABCDEFGHIJKLMNOPQRSTUVWXYZ000000”,就可以了!

我需要什么代码才能使用“这是一个测试”作为输入来完成这项工作。

下面的代码:

0 投票
1 回答
285 浏览

c++ - 文件解密显示原始和密文?

我正在使用 Crypto++ 加密和解密文件。在加密中,key 随机IV生成和hexencoded文件中的文本在哪里被加密。IV和text都cipher写入同一个文件。

在解密中,key使用与加密相同的标准生成,随机IV从文件中提取,hexdecoded. iv长度后的文本存储在字符串中并解密。

发生的情况是我可以看到原始文件,所以我知道它正在工作,但它还cipher在原始文件文本之后显示文本。有没有人如何解决它?

提前致谢。☺</p>