问题标签 [aescryptoserviceprovider]

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 投票
8 回答
88023 浏览

c# - 良好的 AES 初始化向量实践

根据我的问题Aes Encryption... missing a important piece,我现在了解到我对字符串创建可逆加密的假设有点偏离。我现在有

这会产生一致的结果;但是,如果不知道/设置初始化向量,我将无法解密。我真的不想将三个值传递给这个方法(对于 IV),这让我不得不对 IV 进行硬编码或从密钥中派生它。我想知道这是否是一个好的做法,或者它是否会使加密的值容易受到某种攻击……或者我真的想太多了,应该只对 IV 进行硬编码?

更新 根据 Iridium 的建议,我尝试了类似的方法:

但是,这在我的单元测试中显示了一些奇怪的东西:

我的解密文本显示为“92ʪ�F”�,hpv0�� 我正在加密。有很多喜欢它,但这是我的加密。”这似乎几乎是正确的,但当然完全错误。看起来我很接近了。我错过了内存流上的偏移量吗?

0 投票
1 回答
4487 浏览

c# - AES 及其密码模式

我正在尝试使用 AES 进行加密/解密,然后我尝试了 CBC 和 ECB 模式,我从这三个模式中得到了相同的加密输出!这是怎么回事?
这可能没有错,但我只是不知道会发生什么。如果它们都产生相同的密码,那么拥有模式有什么意义?是时间复杂度还是性能复杂度?

你能解释一下 AES 和它的密码模式之间的区别吗?什么是默认密码模式?或者如果你能给我任何参考因为 MSDN 不够清楚

谢谢你

0 投票
2 回答
1030 浏览

c# - AES往返产生随机字符

所以这是我的烂摊子。它返回随机的 Unicode 字符。我让它对这两种方法使用相同的密钥,以及相同的 IV,并且我对它们都使用相同的编码。是什么导致随机响应?

0 投票
1 回答
3597 浏览

windows-phone-7 - 如何在 Windows Phone 7 中使用 AES/ECB/PKCS7Padding 算法?

我是 Windows Phone 开发的新手。如何在 WP7 中使用 AES/ECB/PKCS7Padding 算法?

谷歌搜索时,我看到很多关于充气城堡的建议。但我并没有清楚地了解这个充气城堡。这是算法吗?

我需要加密/解密密码以发送到服务器。在所有其他手机(Android、iPhone、Blackberry)中,我们为此使用 AES/ECB/PKCS7Padding 算法。它们都为我们的输入提供相同的加密/解密结果。但在 Windows Phone 中,我使用 AesManaged Class 进行加密。但它给出了不同的加密结果。在关于 AESManaged 类的 msdn 文档(MSDN 文档)中,他们说“密码模式始终为 CBC,填充模式始终为 PKCS7”。我想也许这就是为什么与其他手机相比,我在这里得到不同的加密结果。

这是这里的问题吗?如果是,那么如何在 WP7 中使用 AES/ECB/PKCS7Padding 算法?

我没有看到任何用于在 AesManaged 类中设置密码模式的属性。

谢谢。

0 投票
4 回答
3335 浏览

c# - DecryptBytesFromBytes [AES] C#

我使用这个函数来解密一个可执行文件:

但是,这个函数返回一个字符串输出,我可以看到我相应的解密文件的 ASCII 输出。但是,我需要得到一个byte[]输出。

我尝试了很多事情,但我被困住了:我需要一个DecryptBytesToBytes函数

0 投票
2 回答
4806 浏览

c# - 为什么我的解密文本中出现随机字符?

0 投票
1 回答
3091 浏览

android - Cipher.getInstance() 因 java.security.NoSuchAlgorithmException 失败:找不到任何支持 AES/ECB/ZeroBytePadding 的提供程序

我有一个使用带有 ECB 和 ZeroBytePadding 的 AES 加密数据的 Android 应用程序。在那种环境下一切正常:加密数据在 Android 中被解密没有问题,如下所示:

但是,我最近决定在 Web 应用程序中解密数据,当我尝试使用相同的 decrypt() 方法时,Cipher.getInstance("AES/ECB/ZeroBytePadding") 抛出异常:

我假设某些 Android 库正在提供 javax.crypto.Cipher 中缺少的合适密码提供程序。有没有其他人遇到过这个问题或知道我能做些什么?将密码填充更改为 PKCS5PADDING 不是一个选项,因为许多消息已经使用早期选项加密。

0 投票
0 回答
544 浏览

vb.net - VB.NET AES 错误“填充无效且无法删除”相同的密钥/iv 和最终块已刷新

我使用 AesCryptoServiceProvider 来使用 AES 执行加密和解密。加密似乎有效,但解密会引发异常,提示“填充无效且无法删除”。

这是我的代码:

0 投票
1 回答
929 浏览

encryption - 如何保护 AesCryptoServiceProvider 的 rgbKey?

我们有一个表格,我们保存用户/密码和其他一些数据。每条记录的密码字段都必须加密。我们决定使用 AesCryptoServiceProvider 进行加密,并手动创建了一次 rgbKey。然后加密所有用户密码并将记录插入到我们的表中,其中密码字段使用我们的 rgbKey 加密。

我们在负载均衡器后面有几台服务器,每台服务器都应该读取这些记录并可以解密密码字段值。一开始我们将base64StringFormat中的rgbKey放入我们的dll(API)中,同样所有的服务器都将使用这个API并且可以解密加密的值。

但是,将 rgbKey 保存在 dll 文件中是非常不安全的。我们讨论了是否将密钥保留在 DPAPI 中。在解密时,在我们的任何服务器上,我们将从 DPAPI 获取我们的密钥并成功解密加密值。

我认为我可以在具有当前用户模式的任何服务器中生成一次受保护的密钥,然后将其保存在我们的通用 dll 中。每个使用公共 dll 的服务器,将这个受保护的密钥(字节 [])提供给具有相同用户的 DPAPI,可以获得不受保护的密钥值。但是它只在受保护的机器上工作,在其他机器上它给出错误:“密钥在指定状态下无效。”

我的问题是如何保护我的永久 rgbKey 以便我可以从所有机器访问它?看看下面类似的测试控制台应用程序,我的方法有什么问题?

我为我的测试控制台应用程序提供了一个示例代码:

首先,我在本地机器上运行我的 PDPAPI() 函数:

然后硬编码添加到我的 UDPAPI() 函数 base64ProtectedData 从上述执行中获得的值,重建解决方案:

现在,如果我在本地机器上运行 UDPAPI() 函数,它会成功取消保护数据,但是如果我将控制台应用程序迁移到任何其他服务器,并使用我的网络用户登录该服务器,控制台应用程序会给出错误“密钥无效在指定状态下使用。”。

0 投票
1 回答
16760 浏览

c# - 使用 OpenSSL 的 AES-256/CBC 加密和 C# 中的解密

我是密码学的新手。我的要求是解密/加密使用 openssl 加密/解密的文本。我们使用的算法是 Openssl 中的 aes-256-cbc。所以,我试图在我的应用程序中实现相同的功能。到目前为止,经过大量谷歌搜索后,我所能做的就是..

我的 openssl 命令是

我的密钥长度是 32digits,iv 是 16digits

谢谢...