问题标签 [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.
endianness - 关于 C 代码中的块 XTEA
我想用不同的字节序系统发送/接收加密数据,这可能吗?我听说相同的字节序系统 xxtea 代码可以在互联网上阻止 xtea ......
php - 需要帮助将 XTEA C++ 代码移植到 PHP
我有一些问题将 C++ 代码转换为 PHP。目的是我需要使用XTEA 密码将我的应用程序(使用 C++ 构建)与 Web 服务器(PHP)通信,以通过 XMLRPC 加密/解密请求的数据包。
我从一些项目Lode 的编程接口中获取的原始代码和我的意思是这个代码。
一些片段:
也许有人可以帮助将上述代码转换为 PHP 代码?非常感谢您提供的所有帮助。
提前致谢。
python - Python 24 位流没有给出正确的值?
我将 3 个字母转换为它们的 ASCII 二进制符号,然后将第一个字母增加 16 位,第二个字母增加 8 位,最后一个字母保持原位,这样当配置 24 位流时,前 8 位places 代表第一个字母,接下来的 8 个代表中间字母,最后一个代表最后一个字母。这是我的代码:
所以这就是问题所在,第一个字母被解密为O
,最后一个字母也是正确的y
,但由于某种原因它不会为z
. 怎么了?
security - 如何选择 AES 填充模式?
根据您使用的框架,有多种填充模式可用于 AES 加密。例如,对于 .NET,我们可以选择 PKCS7、ISO10126、ANSIX923、Zeros 或 None。Java 中提供了类似的选项。
我了解加密器和解密器需要使用相同的模式才能互操作。
选择填充模式时有哪些注意事项?除了“无”之外,您选择哪个重要吗?有些可以被认为比其他更安全吗?
encryption - 是否有使用 MD5 哈希的协议?
我有一个逆向工程程序,用于学习协议(并提高我的组装技能)。我已经反转了整个协议,并且知道加密发生在哪里。该程序使用 CBC(链块密码),但数据包在发送之前一直经过 MD5 哈希。
我知道这是不可能的(或者是吗?)我在 Google 上搜索了很长时间,但找不到任何信息。那么其他人是否知道这样的协议是否可行,以及它的名称?
c# - 任何拥有 PRESENT Ultra-Lightweight Block Cipher 加密的 C#、Delphi 或 FreePascal 实现的人?
不久前,Andrey Bogdanov等人在PRESENT: An Ultra-Lightweight Block Cipher上发表了一篇论文,成为ISO 标准 29192-2:2012。
有没有人有单元测试的 C#、Delphi 或 FreePascal 实现?
这是在这里被问到的,我只是想帮忙。
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 浪费了一天。
java - 解密时出现 IllegalBLockSizeException
我写了一个加密和解密函数。加密工作正常,但我总是在解密中得到 IllegalBlockSizeException。
这是解密函数:
这是测试这个的简单主要方法:
有谁知道如何正确“填充”加密字符串以便我可以解密它?(我尝试用 0 填充字符串,直到长度是 16 的倍数,但得到了类似的东西string not properly padded
。)
谢谢
c++ - 使用 AES 和 Crypto++ 加密-解密单个块
我需要加密单个 AES 块。我不能使用任何模式,如 CBC 和其他。我看到的每个示例都使用流模式。
编辑:好的,我用下一种方式做了,但我真的不喜欢这个尝试。
encryption - 带有短消息的 AES CTR 模式
加密短消息(小于块大小)时使用 CTR 模式的 AES 是否安全?一个例子是加密 SSN 或信用卡号码。我看到了关于此的相互矛盾的信息,所以我想澄清一下。谢谢