问题标签 [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.
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.
java - JAVA:如何加密和查看图像
我必须使用 Java 加密图像。我正确加密了图像,但我不知道如何将其可视化,因为当我尝试打开文件时,系统告诉我图像太长或文件损坏。在没有元数据的情况下,如何使用图片正文?
谢谢!!
java - cipher.update 在 java 中做了什么?
我正在实施 DES - CBC。我对做什么cipher.init
和做什么cipher.update
感到困惑cipher.dofinal
。我只是使用 init 来设置密钥并dofinal
获得结果。我不使用更新。那是对的吗?
使用UTF-8和ASCII编码时,结果有何不同?
这是我的代码:
java - 为什么加密时会有额外的块?
我正在传递 20 字节长的输入数据,java AES-CBC 返回 48 字节而不是 32 字节,这是我认为由于填充而应该输出的。我的密钥长 16 个字节。
样本输出:
向量:c6ab4c2b0b220b8b3520bd20e3741a1e
密码:3dd2cb1f94c99940fd4f7d1a503a091844dc16c8bae480d748453859701b72fecd949e158d2103ba99560d64ee65f6cb
密钥:bc03f2e674a0d482d0c6677d211eb14e
ios - ios 3DES 加密/解密 CBC
我需要一些有关此 3DES 解密的帮助。我已经创建了一些用于解密的代码,但我无法让它正常工作。这是我第一次玩加密,我不知道我在这里到底做错了什么。
我正在从服务器接收解密密钥(这是密钥的示例值:0F7BC98767FF9A01F2B2AD1CD644AD33 - 它是随机生成字节的十六进制表示)。
这是我用来解密消息的方法:
-- 编辑 --- 这是我从该方法收到的输出:
bufferPtr: ÕÏÁU
--- 编辑 2 ----- 我将密钥长度固定为 24 字节长,但现在最终结果是空字符串
python-3.x - 使用 PyCrypto 使用 32 字节初始化向量解密 MCRYPT_RIJNDAEL_256
我有在 PHP 中加密的数据,如下所示:
我需要在 Python 3 应用程序中解密这些数据。我正在尝试使用 PyCrypto,但我对其他库持开放态度。我希望以下工作:
我的初始化向量是 32 字节,并抛出以下异常:
如何将 PyCrypto 设置为使用 32 字节初始化向量和 32 字节块大小?或者,是否有其他库可用于解密数据?
encryption - 我们可以在 AES 中使用一种模式进行加密,另一种模式进行解密吗
服务器端使用 AES/ECB/PKCS5Padding 加密模式,在客户端(移动设备)是否可以使用 AES/CBC/PKCS5Padding 对其进行解密。或者我们需要对服务器端和客户端使用相同的模式?
请指教。
java - 在 python 中为 AES CBS 加密数据获取 javax.crypto.BadPaddingException
我正在将代码从 java 移植到 python,这是我在 python 中的代码
我在 Java 中的服务器端代码抛出一个javax.crypto.BadPaddingException: Given final block not properly padded
. 这是我在服务器上解密的java代码:
java中生成加密有效载荷的相同代码是
c# - 加密 AES 256 输入明文长度问题
我的安全团队希望我使用 AES256 密钥强度和 CBC 模式。我的代码只有在更改为 256 CBC 和块大小为 128 后现在输入长度为 32 个字母的输入明文时才有效。
如果我输入“这是一个测试”(不是 32 个字符长),我会收到:
System.Security.Cryptography.CryptographicException:输入数据不是一个完整的块。
如果我输入:“ABCDEFGHIJKLMNOPQRSTUVWXYZ000000”,就可以了!
我需要什么代码才能使用“这是一个测试”作为输入来完成这项工作。
下面的代码:
c++ - 文件解密显示原始和密文?
我正在使用 Crypto++ 加密和解密文件。在加密中,key
随机IV
生成和hexencoded
文件中的文本在哪里被加密。IV
和text都cipher
写入同一个文件。
在解密中,key
使用与加密相同的标准生成,随机IV
从文件中提取,hexdecoded
. iv
长度后的文本存储在字符串中并解密。
发生的情况是我可以看到原始文件,所以我知道它正在工作,但它还cipher
在原始文件文本之后显示文本。有没有人如何解决它?
提前致谢。☺</p>