问题标签 [ecb]
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.
php - 使用 TripleDes、PKCS7 和 ECB 进行 PHP 加密/解密
我的加密功能正常工作,但是我无法弄清楚如何让解密功能提供正确的输出。
这是我的加密功能:
这是我的解密功能:
现在我正在使用的密钥,test
我正在尝试加密1234567
。我从我正在寻找的加密中获得 base64 输出,但是当我去解密时它什么也不返回(一个空白区域)。
我对加密/解密不是很精通,所以非常感谢任何帮助!
php - 如何使用由 aes-256-ecb 加密的 as3crypto 字符串解密?
字符串在这里用 php 加密。可以使用以下参数对其进行解密:Rijndael-256、ECB 和 Base64。但它不能被我的 ActionScript 代码解密:
升级版:
“无法解密”意味着我得到了错误的纯文本。
在 php 中,纯文本首先由 aes-256-ecb 加密。然后用Base64编码。在 ActionScript 中,这些步骤以相反的顺序完成。
UPD2:
测试编码解码:
停止后的输出cihper.encrypt(data)
为:
UPD3:
它适用于 PKCS5 填充:
输出是:
UPD4:
对于从 php (as here ) 获取的数据,带有 PKCS5 填充的代码在此处停止运行。并且使用 Null 填充它不会停止但解密的数据是错误的。
rsa - 电子密码本 (ECB) 密码链接
我需要使用 ECB(电子密码本)作为学校作业来实现 RSA 算法。我知道 ECB 很糟糕,我不应该在现实生活中使用这样的东西,但我在这里别无选择(我们最终会将它转为 CBC,然后转向 AES,但目前我需要使用 ECB)。
我偶然发现了链接加密块的问题:假设我有一个大小为 256 位的密钥,因此我将每个块大小设置为 256 位(块大小 = 密钥大小)。我还确保填充最后一个块,以防它的大小更小。问题是加密的块结果大小不同,所以我不知道如何链接结果,这样当我解密数据时,我会确切地知道一个块何时开始以及何时结束。在这种情况下,常见的做法是什么?我想过在每个块之间放置某种分隔符,但我认为这是一个糟糕的解决方案。
php - PHP 使用 AES、ECB 模式块和 PKCS5Padding 生成对称密钥
我需要使用 ECB 模式块中的标准 AES 和 PKCS5Padding 生成对称密钥,但我做不到。
在我的搜索过程中,我只找到了使用上述条件加密某些内容的函数。但我不想要这个;我想生成一个对称密钥。
我需要能够与网络服务通信,我需要这个,因为它是加密的一部分。
我查看了 phpseclib,但该库也不生成对称密钥。
javascript - 如何使用 crypto-js 解密 AES ECB
我正在尝试将加密数据从闪存(客户端)发送到服务器端的 javascript(在 asp 中作为 jscript 运行)。
有几个 javascript Aes 库,但它们几乎没有文档记录。我正在尝试使用 crypto-js,但无法使代码正常工作。下面的示例生成一个空输出,它应该生成“6bc1bee22e409f96e93d7e117393172a”。
我从http://www.inconteam.com/software-development/41-encryption/55-aes-test-vectors 获取了一个记录在案的工作密钥和加密数据
我正在使用 ECB,因为它是唯一不需要 IV 或 salt 的版本,因为服务器不知道客户端上使用的 IV 或 salt,因此无法解密数据。
有谁知道为什么上述内容无法解密数据,或者知道任何文档在哪里?
更新:经过几个小时的反复试验,我想出了一个产生输出的组合:7c121d95a84573b6120ada2ffff1ce3118561eba40555c0b 但是,这仍然不正确。产生这个的改变是:
即,我将数据作为十六进制字符串传递,这是不对的,但至少会产生输出。
下一个问题将是填充问题。在客户端上,我使用的是 AS3 hurlant 库,它只提供两种填充策略:NONE 和 PKCS#5。在 crypto-js 中,可用的策略是:
这是否意味着没有机会在两个库之间每次解密数据?在我不得不编写自己的填充黑客(在 AS3 和 java 之间)来添加或删除尾随数据之前,但这需要对二进制数据进行数天的试验和错误 - 必须有一种更简单的方法来从客户端发送单个加密字符串到服务器。
SSL 不是一个选项,因为客户端用户可以简单地使用 Charles 代理或类似代理来查看和篡改未加密的数据。
javascript - 带有 Pkcs5 填充的 ECB 模式中的 Javascript AES
是否可以在 javascript 中使用带有 Pkcs5 填充方案的 ECB 模式中的 AES?
我想使用 ECB 模式的原因是因为它是客户想要的。
java - ECB 模式下的 RSA 加密
我的代码有问题。
我想要做的是使用 ECB 模式加密文件(意思是加密文本块而不链接到下一个块)。
它有时可以完美地工作,但有时却不能。当它加密 128 字节的数据并写入 129 字节时,就会出现问题。它会在第一次这样做之前完美地工作,但随后解密将被关闭一个字节,并将一切搞砸。我知道这一点,因为当它出错时,您可以看到密码(在第 88 行,一个字节数组)的长度为 129,而不是 128,然后将其写入文件。
这是我的意思的一个例子:加密:testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest
输出:testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest(500字节的乱码数据)
我附上了我的整个代码;为了快速运行,我启用了解密以在加密后立即生成到标准输出。
所以只需运行: -k key (将生成 key.public 和 key.private) -e key.public -i input -o output (将加密一些文件输入并将其存储在输出中,读取该文件,解密它,发送到标准输出)。
任何帮助,将不胜感激!
c# - BouncyCastle 中的河豚 ECB 模式
这个线程不应该讨论 ECB 模式有多糟糕,我应该改变它,但是 BouncyCastle 并不真正支持这种模式,除了在 Java 中,你可以使用“getInstance”。我正在使用的代码是这样的,它只正确解密了第一个块(0x1000 字节)。
我想这里的问题是,有没有办法在库中使用 ECB 模式,或者还有其他我可以使用的类吗?
c++ - 使用 C/C++ 和 openssl 处理单个 AES-128-ECB 块
我想使用AES-128-ECB密码对单个 16 字节数据块进行编码和解码。首先,我通过openssl命令行实用程序使用 ASCII 16 字符串“a_key_simple_key”作为键,ASCII 16 字符串“1234567890uvwxyz”作为消息。命令行实用程序将十六进制字符串“142f 7d9e ad8c 0682 30e0 f165 a52f f789”打印为加密消息,然后成功将其解码回原始消息,如下所示:
现在我写了一个简短的 C++ 程序,它应该做同样的事情。它不起作用。有2个问题:
- 编码部分的输出是 32 字节长而不是 16 字节(这 32 字节的前半部分正是我期望看到的密文)
- 解码部分在完成步骤中失败,并显示以下 openssl 消息:
错误:06065064:数字信封例程:EVP_DecryptFinal_ex:错误解密
我怀疑这两个问题都与填充有关,但我不明白到底出了什么问题以及如何解决它。这是程序的完整输出:
这是 C++ 程序本身(带有行号):
ruby - Ruby OpenSSL API 中的哪个 Cipher 等效于 DES_ecb2_encrypt()?
Ruby 的 OpenSSL API 中的哪个 Cipher 等效于 OpenSSL C 函数DES_ecb2_encrypt()
?
我看到以下密码:
我基本上需要 C 中这个函数调用的 Ruby 等价物: