问题标签 [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 回答
5961 浏览

java - 将字节数组转换为字符串后如何在Java中将换行符写入文件

我想读取一个文本文件,将其转换为字节数组,处理字节数组,然后将其写入另一个文件。为此,我不想丢失任何换行符,因此新行也应写入上一步创建的新文件中。这是我到目前为止所做的:

将 filePath和fileName作为上述代码片段中的有效标识符。

0 投票
0 回答
358 浏览

c# - 通过DES以CBC模式实现初始向量(IV)

我不明白如何在 DES 中使用初始向量。我已经阅读了初始向量的公式是如何使用 CBC 模式块密码模式操作的。如何将我的明文实现到公式中。我可以举例说明吗

明文 = 计算机,二进制 = 01000011 01001111 01001101 01010000 01010101 01010100 01000101 01010010,十六进制 = 43 4F 4D 50 55 54 45 52| 密钥 = ENCRYPTT,二进制 = 01000101 01001110 01000011 01010010 01011001 01010000 01010100 01010100,十六进制 = 45 4E 43 52 59 50 54 54

谢谢

更新 :

我有两个 DES 加密项目。第一个项目使用库,第二个项目没有库。第一个项目使用库,使用CBC加密模式,第二个项目没有库,不加密模式。加密的密文导致第一个和第二个不同的程序。问题是我应该在密文相同结果的第二个程序中添加什么。如何在没有库的情况下在我的第二个程序中添加 CBC 模式。

第一个带有库的项目代码:

没有库的第二个项目代码:

结果 Cipertext(十六进制):

第一个项目:2B B7 4F 52 A8 0E 9F 0F,第二个项目:A6 53 62 DD FD 25 A0 C5

0 投票
1 回答
3054 浏览

php - 使用 CBC 模式和密钥和 IV 规范密钥的 3DES 算法进行加密的 PHP 代码

我尝试使用 3des(CBC) 使用 php 中的密钥和 IV 规范密钥加密以下数据,但我没有得到与我在此在线工具上获得的相同输出(http://symmetric-ciphers.online-domain-工具网/

按照我试过的PHP代码

0 投票
1 回答
2581 浏览

encryption - 如何编码纯文本 ASCII 或十六进制?

如果我有一个给定的十六进制密文(来自带有 AES 的随机 IV 的 CBC 模式),其明文是 ASCII 编码的,我是否需要在加密之前将该 ASCII 明文编码为十六进制?

明文是"Pay Bob $100"
ASCII080 097 121 032 066 111 098 032 036 049 048 048

我得到了密文20814804c1767293b99f1d9cab3bc3e7 ac1e37bfb15599e5f40eef805488281d

0 投票
2 回答
818 浏览

php - 如何计算 PHP Mcrypt Rijndael 256 CBC 的输出长度

我想使用 cakephp 的插件将加密数据存储在数据库中。但我想计算数据库字段需要多少长度。

这是插件的加密代码:

例如,2000 长度的原始字符串输入需要多少字段长度?VARCHAR(?)

如果您需要更多详细信息,这里是所有插件代码:

https://github.com/jmillerdesign/Cipher-Behavior-for-CakePHP/blob/master/Model/Behavior/CipherBehavior.php

0 投票
0 回答
691 浏览

objective-c - Objective-c 中有 Cipher java 吗?

我想在 IOS 中使用 AES/CBC/PKCS5Padding 解密和加密数据,在 android 中我可以使用 Cipher 类来执行此操作,但在 IOS 中没有这些类可以使用它,对吗?

目前我用这个来做,但它似乎不正确。

我怎么想像java一样做呢?

我已经尝试了很多不同的方法来做到这一点,但它现在仍然有效,希望你们能帮助我,谢谢。

附加信息:返回数据:

{"data":"3557793957617431633179755554443638483834686662707a652b7977454c655a654d344e316463513348324e2f2f6e6e4f54783961564e5a4f56426c6e69675a3850644c66734136446f736950516279366b375a5066302f7a424e654b47454c4153547132354c6746724e38432b4d7a3750514c4b3836796f7a54307764614666574e776373716d49766f517552347877766432337778584a796a49457878374e6c354a4f32434755583034722b4770324c79514658704d686e51586553574c6b6939303045754c6a7954494c454977493242796365496a75394b4a2b456347526136527244682b316168533067303651597a6b47713469717a75764d7856"}

加解密步骤

密码:AES(Rijndael 块大小 = 128)

键:fTG90HGFyeal3kGw

模式:CBC

IV:CBC 随机(必须附加到加密数据)

*base64 被用于使数据传输成为可能。

请求步骤:

1- 以键值格式收集所需数据
2- JSON 编码集合
3- 加密 JSON 字符串
4- 生成随机 IV 并附加到加密数据的头部
5- 使用 base64 编码加密数据
6- 在名为的键下发布第 5 项结果“数据”</p>

响应步骤:
1- 解码 JSON 字符串响应
2- 使用 base64 解码名为“data”的键的值
3- 解码数据的子字符串 IV
4- 解密数据
5- JSON 解码第 4 项的结果
6- 键值响应格式是

我按照解密步骤解密,我仍然无法解密数据。

0 投票
1 回答
5699 浏览

ios - 带 CBC 的 AES 128

我对目标 C 中的简单 AES 128 感到很生气,并且无法在简单的测试中获得预期的密文。谁能告诉我我做错了什么?

测试:

类别 NSData (AES):

我正在使用这些 AES 测试向量集:http: //www.inconteam.com/software-development/41-encryption/55-aes-test-vectors#aes-cbc-128

谢谢

0 投票
1 回答
1121 浏览

encryption - 对多个加密调用使用相同的密钥和 IV 值

在多个加密调用中使用相同的密钥和初始化向量是否不安全?特别是关于 AES-CBC,如果我有多个 8kB 块,并且我尝试分别加密每个块(基本上每次都重置密文 XOR 块),这是否会导致不安全的加密?

我知道 ECB 模式存在这个问题,因为明文中的每个块大小都会输出到相同的密文。但是对于 8kB 块,我是否会遇到同样的问题/是否还有其他我没有考虑的安全漏洞?

谢谢

0 投票
2 回答
424 浏览

android - Encrypt data in Android and decrypt in Ruby using AESCrypt

I'm trying to encrypt a JSON string in Android and decrypt it in Ruby using AESCrypt.

With this Java code I could decrypt second half of the data!

Raw data is:

{"device_id":"863438021956196","imei":"863438021956196"}

And decrypted data in Ruby is:

\xEE\x99\x95\xC5p\x17\x8A\xFB\xF0\xA5\xC7\x1D7\x98\xBD\xD93438021956196\",\"imei\":\"863438021956196\"}

What is the problem?

0 投票
1 回答
1962 浏览

java - AES。javax.crypto.Cipher 在解密模式下返回空数组

我自己实现CBC模式。我使用 AES 作为每个 CBC 块的 E 函数。

这是我的加密代码:

我使用update是因为我不想添加 AES 垫。我自己在CBC算法开始时的最后一个块上做。

当我想解密密文块时,我使用与 Cipher.DECRYPTION_MODE 相同的函数。

问题在于,Cipher.update在解密模式下,该encrypt方法加密的输入返回空字节数组。

我很困惑。怎么了?