问题标签 [block-cipher]

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 回答
372 浏览

endianness - 关于 C 代码中的块 XTEA

我想用不同的字节序系统发送/接收加密数据,这可能吗?我听说相同的字节序系统 xxtea 代码可以在互联网上阻止 xtea ......

0 投票
2 回答
835 浏览

php - 需要帮助将 XTEA C++ 代码移植到 PHP

我有一些问题将 C++ 代码转换为 PHP。目的是我需要使用XTEA 密码将我的应用程序(使用 C++ 构建)与 Web 服务器(PHP)通信,以通过 XMLRPC 加密/解密请求的数据包。

我从一些项目Lode 的编程接口中获取的原始代码和我的意思是这个代码。

一些片段:

也许有人可以帮助将上述代码转换为 PHP 代码?非常感谢您提供的所有帮助。

提前致谢。

0 投票
3 回答
166 浏览

python - Python 24 位流没有给出正确的值?

我将 3 个字母转换为它们的 ASCII 二进制符号,然后将第一个字母增加 16 位,第二个字母增加 8 位,最后一个字母保持原位,这样当配置 24 位流时,前 8 位places 代表第一个字母,接下来的 8 个代表中间字母,最后一个代表最后一个字母。这是我的代码:

所以这就是问题所在,第一个字母被解密为O,最后一个字母也是正确的y,但由于某种原因它不会为z. 怎么了?

0 投票
0 回答
1214 浏览

security - 如何选择 AES 填充模式?

根据您使用的框架,有多种填充模式可用于 AES 加密。例如,对于 .NET,我们可以选择 PKCS7、ISO10126、ANSIX923、Zeros 或 None。Java 中提供了类似的选项。

我了解加密器和解密器需要使用相同的模式才能互操作。

选择填充模式时有哪些注意事项?除了“无”之外,您选择哪个重要吗?有些可以被认为比其他更安全吗?

0 投票
1 回答
447 浏览

encryption - 是否有使用 MD5 哈希的协议?

我有一个逆向工程程序,用于学习协议(并提高我的组装技能)。我已经反转了整个协议,并且知道加密发生在哪里。该程序使用 CBC(链块密码),但数据包在发送之前一直经过 MD5 哈希。

我知道这是不可能的(或者是吗?)我在 Google 上搜索了很长时间,但找不到任何信息。那么其他人是否知道这样的协议是否可行,以及它的名称?

0 投票
1 回答
694 浏览

c# - 任何拥有 PRESENT Ultra-Lightweight Block Cipher 加密的 C#、Delphi 或 FreePascal 实现的人?

不久前,Andrey Bogdanov等人在PRESENT: An Ultra-Lightweight Block Cipher上发表了一篇论文,成为ISO 标准 29192-2:2012

有没有人有单元测试的 C#、Delphi 或 FreePascal 实现?

这是在这里被问到的,我只是想帮忙。

0 投票
1 回答
594 浏览

java - 将gzencoded数据传递给mcrypt_encrypt,解密后无法解压

为了简短起见,将 gzencode(或其他非文本数据)的结果传递给 mcrypt_encrypt 函数时是否存在已知问题?

细节:

基本上我有一个问题,加密/解密适用于纯文本,但如果我将压缩数据传递给加密函数,然后解密和解压缩,我会得到错误解压缩。

所以在 PHP 中,我将 gzencode() 的结果传递给 encrypt 函数。然后我进行 base64 编码以在 Web 服务网页上显示结果。然后在一个 Java 应用程序中,我使用 GZIPInputStream 对 base64 进行解码、解密和解压缩。我在最后一步出现错误。

但是,如果我跳过压缩步骤(只需将纯文本传递给 encrypt 函数),一切正常。如果我跳过加密并只进行压缩,一切也都很好。因此,如果我不将它们结合起来,这些函数似乎在 PHP 和 Java 方面都可以正常工作。

Java函数:

因此,如果我在 PHP 中执行此操作: base64_encode(encrypt(gzencode($plain_text)));

这在Java中

解压缩打印(解密(decodeBase64(数据)));

在解压缩阶段,我得到了可怕的:“java.util.zip.ZipException:超额订阅动态位长度树”。

同样,如果我跳过两端的压缩/解压缩步骤,一切都很好。如果我在两端跳过加密,那么压缩/解压缩工作正常。

编辑:好吧,很奇怪,但是在逐字节检查压缩数据的结果字节数组之后(在解码 base64 和解密之后),我发现一个单字节(与原始 PHP 字节数组相比)的值为 1。它是字节数 14(Java 中的索引 13),它的值是 110 而不是 111。我完全不知道这是怎么回事。

因此,如果我将该单字节从 110 更改为 111,那么我可以成功地使用 GZIPOutputStream 来解压缩数据。

所以我知道出了什么问题,但不知道为什么。

编辑 2:这已解决->感谢 Owlstead 的评论,我仔细检查了 IV 值,发现 php 和 java 代码之间存在细微差异。我不知道这如何导致结果解密数据中只有一个字节的差异。

那是在我的 IV 中的单个 0x13 而不是 0x12 浪费了一天。

0 投票
1 回答
219 浏览

java - 解密时出现 IllegalBLockSizeException

我写了一个加密和解密函数。加密工作正常,但我总是在解密中得到 IllegalBlockSizeException。

这是解密函数:

这是测试这个的简单主要方法:

有谁知道如何正确“填充”加密字符串以便我可以解密它?(我尝试用 0 填充字符串,直到长度是 16 的倍数,但得到了类似的东西string not properly padded。)

谢谢

0 投票
1 回答
2072 浏览

c++ - 使用 AES 和 Crypto++ 加密-解密单个块

我需要加密单个 AES 块。我不能使用任何模式,如 CBC 和其他。我看到的每个示例都使用流模式。

编辑:好的,我用下一种方式做了,但我真的不喜欢这个尝试。

0 投票
1 回答
715 浏览

encryption - 带有短消息的 AES CTR 模式

加密短消息(小于块大小)时使用 CTR 模式的 AES 是否安全?一个例子是加密 SSN 或信用卡号码。我看到了关于此的相互矛盾的信息,所以我想澄清一下。谢谢