问题标签 [rijndael]
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.
c# - 实施 Rijndael 解密时是否可以不使用 IV?
我正在使用 Rijndael 算法实现密文解密。不幸的是,我无法访问数据加密,并且只提供了密码(用于生成密钥)和算法类型。
我没有盐(似乎没问题),也没有静脉注射。现在,我的问题是我是否绝对必须拥有 IV 才能执行解密?我怀疑编写加密的开发人员没有使用盐或 IV(如果这可能的话)。
我试图将 IV 设置为 null,但没有运气,生成 Rijndael 实例会创建一个默认 IV,这会在解密后扭曲我的明文的前 16 个字符。
有什么办法可以抵消IV的影响吗?或者是否需要尝试获取加密中使用的 IV?
php - .Net 和 PHP Rijndael 加密不匹配
起初我认为这是填充,因为 mcrypt 使用零填充,但我将 php 更改为使用 PKCS7 并获得相同的确切结果
任何人都可以帮忙吗?我认为这与php中的填充有关
.Net 的测试输出:
PHP 的测试输出:
PHP:
VB.Net:
vb.net - 加密 - 对称密钥
我正在使用 Rijndael(作为 AES 算法)进行加密。我加密值(对象属性)并将对象序列化为 xml,然后通过 Web 服务将 xml 发送到接收器。我想传递我用来加密数据的加密对称密钥。但是我应该传递什么密钥?我的解密算法如下所示(vb.net):
如果我想解密加密的字符串,我必须同时使用密钥和 IV,但我认为我只需要传递一个密钥值。我必须以另一种方式这样做还是应该传递什么?我的规范说必须使用 AES 和 128 位密钥对这些值进行加密。
.net - 使用 Rijndael 算法嵌入 IV 信息以进行文件加密的正确位置在哪里?
我正在创建一个 Rijndael 文件加密应用程序。我将为每个文件加密使用唯一的 IV。
我的问题:嵌入 IV 信息的合适位置在哪里?
我最初的想法是将它附加在文件内容的末尾。这是一个不错的选择吗?对我来说还有其他更好的选择吗?
.net - 为什么 Rijndael 加密代码不适用于大文件?
我多次使用以下 Rijndael 代码进行加密而不会失败。但是为什么它不能加密 4.2 GB 的 ISO 文件呢?事实上,我的电脑有 16GB 内存,应该不是内存问题。我使用 Windows 7 旗舰版。该代码使用 Visual Studio 2010(一个 VB.NET 项目)编译为 winform (.Net 4)。
我检查了 ISO 文件是否正常,可以挂载为虚拟驱动器,甚至可以刻录到 DVD ROM。所以不是ISO文件的问题。
我的问题:为什么以下代码无法加密大小为 4.2GB 的 ISO 文件?这是由 Windows/.NET 4 实现的限制引起的吗?
php - 加密/哈希问题
我正在编写一个小脚本,它允许我在 cookie 中存储相对安全的信息,以验证用户登录,而无需使用会话。输出的一部分是加密的盐,用于生成 hmac_hash 时使用存储在 cookie 中的一些信息以及数据库中的一些用户信息。
但是,经过一些测试,我遇到了字符串的加密/解密问题并导致不同的哈希结果。
IE:
我最终得到
但是当我回显两个字符串时,它们都是 123456abcdef。
do_encrypt 函数如下:
do_decrypt 函数:
对于这两个函数,$ek 是从另一个文件中提取的加密密钥。
我试图理解为什么显示的字符相同,但实际变量不同(否则哈希结果将相同),有没有办法确保两个字符串对于哈希目的相同?
谢谢,瑞恩。
c - C Libmcrypt 无法成功加密/解密
我正在使用 c 中的 libmcrypt 并尝试使用 rijndael-256 作为选择的算法来实现一个简单的加密和解密测试。我已经将这个测试实现与 rijndael 的手册页示例非常接近,而不是他们选择的算法。当使用字符串 gcc -o encryption_test main.c -lmcrypt 编译时,以下源代码产生类似于以下内容的输出: 加密消息缓冲区包含 j��A��8 �qj��%`��jh���=ZЁ �j 原来的字符串是��m"�C��D�����Y�G�v6��s��zh�</p>
显然,解密部分失败了,但由于它只是一个函数调用,它让我相信加密方案的行为也不正确。如果你能指出我正确的方向,我有几个问题要问 libmcrypt 专家。
首先,是什么导致这段代码产生这个损坏的输出?
其次,在处理诸如密钥大小和块大小之类的强制固定大小时,例如 256 位密钥,该函数是否期望 32 字节密钥 + 尾随空字节,31 字节密钥 + 尾随空字节,还是 32 字节的密钥,第 33 个字节无关紧要?同样的问题也适用于块大小。
最后,我注意到的其中一个示例使用 mhash 生成密钥文本的哈希以提供给加密调用,这当然是可取的,但它被注释掉了,并且 mhash 中的链接似乎失败了。使用 libmcrypt 时处理这种类型的密钥转换的公认方法是什么?我选择将任何此类复杂性排除在外,以防止使已经损坏的代码进一步复杂化,但我想将其合并到最终设计中。以下是有问题的源代码:
php - 在 JavaScript 中解密 PHP AES/CBC 加密字符串
尝试在 JavaScript 中解密使用以下代码片段在 PHP 中加密的字符串时,我简直快疯了:
我尝试过 slowAES、gibberish-aes 和其他一些可用的 JS 库,但总是无法正确解密单个字符串。
我也在 SO 中进行了广泛搜索,但无法找到适用于我的情况的解决方案。
任何指向正确解决方案的指针都将受到欢迎!
谢谢,亚历山德罗
java - 如何使用 Rijndael 和 256 位的块大小进行加密或解密?
出于某些原因,我需要使用 256 位的块大小而不是使用 128 位块大小的 AES 来实现 Rijndael 解/压缩(原因:使用 Rijndael 在 PHP 中对数据进行加密......)。
如何更改密码的块大小?
如果我只是得到一个密码"RIJNDAEL/CFB/PKCS5Padding"
并尝试用 256 位初始化一个 IV,我会得到一个异常,因为块大小只有 128 位。
java - 如何使用 CFB 模式、256 位块大小和 Bouncycastle 加密 Rijndael?
我正在尝试使用 rijndael(密钥大小 256 位,块大小 256 位,CFB 模式)加密字符串,目前我正在做这样的事情:
我可以很好地加密和解密我自己的东西。不幸的是,我必须解密的字符串来自 php 中的 mcrypt。
我无法解密这个字符串,我猜失败就在我这边。谁能给我一个示例如何使用所需参数配置密码?
编辑:
在此处和 php 文档注释中遵循一些建议。我将密码更改为:
加密仍然不兼容。
编辑 2
让它在CBC模式下工作。我想问题出在iv中的某个地方。