问题标签 [aes]

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 投票
1 回答
1658 浏览

c++ - 指定的算法无效 CryptoAPI

我正在尝试使用 128BIT AES 解密来解密某些东西。当我尝试调用 CryptDecrypt 时,我收到一条错误消息,指出“指定的算法无效”。使用此处发布的库时遇到同样的问题:http: //www.codeproject.com/KB/security/WinAES.aspx

什么会导致此错误?

我在 vista64bit 和 Visual Studio 2008 上使用 CryptoAPI。我检查了注册表并且 AES 库在那里......

编辑

InitWinCrypt 函数

AesOffering 结构:

编辑2

重新启动我的计算机并删除 CBC 块后。我现在收到错误数据错误。数据在 C# 中可以很好地解密。但我需要使用wincrypt来做到这一点。

0 投票
3 回答
8404 浏览

encryption - 如何将 AES 初始化向量传达给客户端以进行混合密码系统

我需要为客户端-服务器通信实现安全性。我已经实现了以下混合密码系统

为了在混合密码系统中加密发给 Alice 的消息,Bob 执行以下操作:

  1. 获得 Alice 的公钥。
  2. 为数据封装方案生成一个新的对称密钥。
  3. 使用刚刚生成的对称密钥在数据封装方案下对消息进行加密。
  4. 在密钥封装方案下,使用 Alice 的公钥加密对称密钥。
  5. 将这两种加密都发送给 Alice。

为了解密这个混合密文,Alice 执行以下操作:

  1. 使用她的私钥解密包含在密钥封装段中的对称密钥。
  2. 使用此对称密钥来解密数据封装段中包含的消息。

我将 RSA 用于公钥密码系统,将 AES 用于对称密钥密码系统。一切正常,但我不确定如何处理 AES 初始化向量。目前,我正在连接 AES 密钥和初始化向量,用公钥对其进行加密并将其发送到服务器。

我只是想就这种方法获得一些意见。其他通信协议 SSL 等如何解决此问题。

谢谢。

0 投票
3 回答
472 浏览

encryption - 我应该使用哪种加密方法?

我需要一个系统来交换非常机密的数据(源代码是商业机密)。我将使用 Crypto++,所以实际上我可以使用所有加密算法,尽管我更喜欢使用行业标准。

目前我正在考虑这些方法:

  1. 让服务器生成 2048/4096 位 RSA 密钥,将公钥发送给客户端,让客户端加密数据,然后将其发送给服务器。
  2. 使用像 Diffie-Hellman(正确的是 Diffie-Hellman-Merkle)这样的密钥交换方法来交换 AES-256 密钥。
  3. 启动 TLS 连接并直接告诉服务器 AES 密钥。

你认为我应该使用哪种方法?只要合理,我不关心性能;安全才是最重要的。如果都没有,请建议另一种方法。

PS:我可能会在对称算法上使用链接,例如 AES-Twofish-Serpent。

编辑:任何推荐的软件都必须在不会限制专有使用的许可证中。LGPL 尽可能严格。这排除了 GPL。

0 投票
2 回答
1832 浏览

c# - C# 中的 XTS-AES 模式

是否可以在 C#(.net 3.5)的 XTC 模式下使用 AES?它似乎不在 CipherMode 枚举中。我似乎无法在网上找到它的任何实现。

编辑:由于我找不到.net 实现,我写了一个:https ://bitbucket.org/garethl/xtssharp

0 投票
1 回答
820 浏览

aes - AES 算法 S Box 唯一性

这是关于AES算法的。

假设我已经实现了 AES 算法并使用我的算法加密数据。现在假设其他人也实现了相同的 AES 算法(128 位)。现在,如果我使用我的算法加密数据,是否可以使用其他人开发的第二种算法解密数据并取回原始数据。算法的根本区别是什么。

是不是和S-BOX有关

谢谢

0 投票
2 回答
33896 浏览

php - 如何在 PHP 中进行 AES256 解密?

我有一段加密的文本需要解密。它使用 AES-256-CBC 加密。我有加密的文本、密钥和 iv。但是,无论我尝试什么,我似乎都无法让它发挥作用。

互联网建议 mcrypt 的 Rijndael 密码应该能够做到这一点,所以这就是我现在所拥有的:

就目前而言,我收到 2 个警告,输出是乱码:

任何帮助,将不胜感激。

0 投票
2 回答
1599 浏览

php - 将 Ruby AES256 解密函数转换为 PHP

我在 Ruby 中有以下函数可以解密一些数据:

我试图在 PHP 中做同样的事情,但我不确定我做错了什么。这是我所拥有的:

输出最终只是垃圾,而不是我正在寻找的字符串。想法?

在我们开始之前,将其切换到MCRYPT_RIJNDAEL_256似乎并没有帮助,只会导致它抱怨 iv 没有块大小那么长。我相信 128 在这种情况下是正确的,因为这个网站说 128/256 是块大小的指示,而不是密钥大小。

0 投票
1 回答
2974 浏览

ruby - Perl & Ruby 交换 AES 加密信息

Perl for Ruby 中的 Crypt::CBC 等价于什么?

注意:这个问题类似于stackoverflow:655691的 PHP/Perl 。

Perl 版本

我的 ruby​​ 版本如下所示:

我很确定 Base64 在 Ruby 和 Perl 中的工作方式相同。任何线索什么是正确的方法?

更新(解决方案)

红宝石

0 投票
3 回答
2096 浏览

encryption - AES 128 位 CFB 实现或示例应用程序的链接

有人知道示例应用程序或链接,我可以在给定密码和一些数据的情况下测试 128 位 AES CFB 实现。

谢谢

0 投票
5 回答
12550 浏览

java - iPhone(Objective-c)和Java之间的AES区别

我整天都在扯头发试图解决这个问题......

我有一个在 iPhone 上运行的 Objective-C 客户端,连接到 Java 服务器。iPhone 正在使用 AES 加密数据,但我无法在服务器上对其进行解密。我正在使用已知的密码和消息(单个字符串)并在 iPhone 上生成字节数组,在 Java 服务器上使用相同的键和消息生成比较字节数组,但字节数组完全不同(因此不能在 Java 端解码)。

客户端正在使用具有以下设置的 CommonCrypto 库...

数据是一个NSData使用“消息”的单词,dataUsingEncoding:NSASCIIStringEncoding Key是一个NSData使用上述编码的单词“1234567891123456”。算法是kCCAlgorithmAES128 选项是kCCOptionsPKCS7Padding(我认为这等同于服务器上的 ECB?!)

服务器正在使用以下代码...

但是 encryptedData 中的数据与 Objective-c 代码中生成的数据不匹配,字节数组完全不同。

谁能看到我做错了什么明显的事情?我认为设置都是一样的...... :(

  • 更新 - 根据要求....

好的,这就去......

iPhone客户端正在加密以下字符串“消息”它使用密钥“1234567891123456”它使用“1010101010101010”的初始化向量它使用AES128,具有CBC模式(据我所知)和kCCOptionsPKCS7Padding选项。

加密(base64 编码)的结果是 UHIYllDFAXl81ZM7OZPAuA==

服务器使用相同的密钥和初始化向量加密相同的字符串。它使用以下 Cipher.getInstance("AES/CBC/PKCS5Padding");

加密结果(base64 编码)是 ALBnFIHysLbvAxjvtNo9vQ==

谢谢。

  • 更新 2 - 根据要求...

这是iPhone代码....

用于加密的 NSData 类别来自这里...

http://github.com/AlanQuatermain/aqtoolkit/tree/master/CommonCrypto/

顺便说一句,我检查了 toencrypt、pass 和 iv 中的字节数组,它们与服务器上的字节数组相匹配。