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

java - AES/CBC 真的需要 IV 参数吗?

我正在编写一个简单的应用程序来使用 AES / CBC(模式)加密我的消息。据我了解,CBC 模式需要 IV 参数,但我不知道为什么我的代码在没有使用 IV 参数的情况下工作。任何人都可以解释为什么?谢谢。

打印的加密信息:T9KdWxVZ5xStaisXn6llfg== 无一例外。

0 投票
1 回答
2174 浏览

java - 在 Java 中创建 8 字节 IV

我是 Java 密码学的新手,我正在尝试编写一个程序来加密和解密一个基于 CBC 操作模式的 DES 对称密码的短语。

谁能告诉我如何创建一个 8 字节的初始化向量以及如何将新的 IV 转换为 AlgorithmParameterSpec 类?

另外,我应该导入哪些包?

编辑:现在我有这些行:

p>

我的上述方法正确吗?

谢谢。

0 投票
1 回答
4021 浏览

java - 加密和解密文本文件的内容 (Java)

我在这里寻求有关我的程序的帮助。该程序可以使用基于 CBC 操作模式的 DES 对称密码对短语进行加密和解密。

我现在要做的是对其进行更改,使其可以使用 CBC 操作模式的 DES 对称密码加密和解密文本文件的内容。

任何人都可以帮我解决这个问题吗?

谢谢!

0 投票
2 回答
502 浏览

c - 每次打印不同的无符号字符

所以我尝试使用 cbc_crypt 来尝试加密和解密不同的字符串。到目前为止,这是我的程序。

请注意,cbc_crypt 已被注释掉。这就是当我在 cbc_crypt 被注释掉时运行它时发生的情况。

我无法弄清楚为什么每次打印时文本都会发生变化。我什至没有尝试运行加密,我只是打印出我初始化的 unsigned char。任何帮助,将不胜感激。

编辑:所以显然我应该使用 %s。如果我这样做,它现在会持续打印。

有人可以解释为什么它之前打印地址吗?另外,有没有办法以十六进制打印它?(我真的不明白 4V 和所有问号的来源)。

编辑 2:好的,所以我现在像 Scott 建议的那样打印

然后它将文本打印为 185286171186254254254

我试图弄清楚它如何与我的原始十六进制代码 {0x12、0x34、0x56、0xab、0xba、0xfe、0xfe、0xfe} 匹配。

编辑:我意识到我应该使用 %x 而不是 %u。现在它的打印 123456abbafefefe 正确!多谢你们。

0 投票
1 回答
574 浏览

java - Java CBC 解密工作,但 CTR 失败

我为我正在学习的加密课程设置了一个程序。我将使用我的代码和另一部分来说明我的变量差异。我的目标是为我们的家庭作业解密文本。我不希望有人为我解密,但希望得到一些帮助,了解我的代码中导致此问题的原因。当我解密 CBC 时,我可以毫无问题地得到正确的输出,尽管它确实有一些额外的字符(这可能是填充的问题?我不确定)

然后,当我使用正确更改的 CTR 时,它会返回一堆垃圾。任何帮助将不胜感激。谢谢,

加拿大广播公司:

点击率:

CBC 变量

点击率变量

解密主要

*解决方案的编辑方法 - 我不是随机 IV,而是从密文的前 16 位中提取 IV。在作业中它说是这种情况,出于某种原因,当我第一次查看它时,我掩盖了它。

0 投票
2 回答
796 浏览

perl - Perl DES CBC 加密导致更多字节

我正在使用 Perl 使用 Crypt::CBC 库执行 CBC DES 加密:

代码的输出是:

我的数据大小方便,大小为 64 位(16 个十六进制数字),符合 DES 标准。根据维基百科

DES 是原型块密码——一种算法,它采用固定长度的明文位串,并通过一系列复杂的操作将其转换为另一个相同长度的密文位串

为什么编码输出的字节长度比原始输入长?

谢谢。

0 投票
1 回答
361 浏览

aes - 我使用 CBC_CTS_Mode_ExternalCipher 并得到乱码输出

好的,我讨厌这样做,但我很沮丧,因为 CBC_CTS_Mode_ExternalCipher 上几乎没有文档。

我有一个部分已知的 AES128 密钥。我构建了一个函数来生成密钥未知和已知部分的所有可能组合和排列。让我换个说法……对不起,该函数以我想要的格式创建一个密钥,即 16 个字节的十六进制,但是解密的输出都搞砸了,我打算只解密消息和 XOR CBC手动,但我没有时间。

当解密输出时,我得到各种符号、数字、字母和疯狂。

当您已经拥有用于密码分析的密文时,有更多知识的人可以帮助解释为什么这不起作用或解释在 CBC 模式下解密密文字符串的更好方法吗?

谢谢

编辑:替换“密钥有效,但解密无效”,让我改述一下......对不起,该函数以我想要的格式创建一个密钥,即 16 个字节的十六进制,但解密的输出是一切都搞砸了

0 投票
3 回答
1225 浏览

php - c++转php翻译、解密函数

所以,我正在尝试将一段 C++ 代码翻译成 php。C++ 来自外部来源,至少可以说,我缺乏 C++ 和解密方面的知识。

源 C++ 是:

到目前为止我得到了什么:

我意识到我基本上是在要求你们为我做点什么,但我真的被那些内容所困扰for (auto it...

真正帮助我的提示/解释是:

  • 在这种情况下BF_ecb_encrypt 什么?(在伪代码甚至 php 中?)(拍自己的手指。“不要要求成品”
  • 我的翻译是否在正确的轨道上transform
  • 什么是{{0}}BF_set_key(&key, 16, key_data);
  • 是什么reinterpret_cast<unsigned char*>(&(*it))

我确实查看了这些文档页面,但无济于事:

完整的源代码可在 github 上找到
这个具体的代码来自src/parser.cpp

0 投票
2 回答
3901 浏览

encryption - 如何更改CBC加密文本以更改消息

我目前正在学习加密,我希望能找到更多关于我所学内容的说明。

假设消息“100 美元应该从账户 123456 转移到 555555”是使用 aes-128-cbc 和随机 IV 加密的。我的教授说可以更改加密文本,这样当再次解密时,消息显示“900 美元应该从账户 123456 转移到 555555”。你怎么做呢?

我尝试通过生成自己的密钥和 iv,加密消息,然后将其转换为十六进制字符来自己解决这个问题。从那里我可以换出一些字符然后解密吗?我试着玩这个,但似乎总是有问题。

我们为此使用了一个基本的 linux 命令行。

任何帮助或解释都会很棒!

0 投票
1 回答
1361 浏览

java - Java 中的 Node.js aes-256-cbc

如何在 Java 中实现以下 Node.js 函数?

我读过crypto从密码中派生密钥和iv,但我不知道如何用Java做到这一点。

谢谢。