问题标签 [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 投票
0 回答
311 浏览

java - c# RijndaelManaged 比 Java 等效 (AES/CFB8/NoPadding) 低 10 倍

在调试我的 C# 应用程序的性能时,我注意到它比等效的 Java 慢很多。经过调查,问题似乎是由加密/解密方法引起的。

我被迫使用模式设置为 CFB8 且没有填充的 AES 加密。对于 Java,这非常简单,因为我可以使用Cipher.getInstance("AES/CFB8/NoPadding");. 在 C# 中,我发现我需要使用new RijndaelManaged(). 使用相同的键和相同的数据运行测试后,结果如下:

爪哇:

  • 加密:0.402s
  • 解密:0.480s

C#:

  • 加密:4.201s
  • 解密:3.671s

C#密码

C#测试代码:

结果:“AesCrypto.Crypt 占用:3626”

JAVA密码:

Java测试代码:

结果:“Java 加密:PT0.469S”

可能的解决方案:

在对此进行了相当多的研究之后,似乎它AesCryptoServiceProvider()的性能与 Java 的等价物大致相同,并且结果几乎相同。然而,这样做的问题是它需要填充,而 Java 的等价物不需要填充。例如,这意味着如果我想加密“abcdab”,它只会加密“abcd”并返回结果并将其余部分(“ab”)保留在内部。如果我使用填充,我可以让它返回完整的“abcdab”加密,但是它附加了额外的数据并且对称算法被取消同步,因为在java中我可以加密“abcdab”而没有任何填充。

问题

所以最后我的问题是如何使 C# 加密/解密过程与 Java 一样快?我做错了什么AesCryptoServiceProvider,也许它可能不需要填充?

0 投票
1 回答
1543 浏览

node.js - 尝试使用加密在nodejs中解密使用AES 256(AES / ECB / PKCS7Padding)算法生成的加密密钥

我尝试使用 aes256、aes-cross 和加密。 但是我无法解密使用带有 PKCS7 填充的 AES 256 (aes-256-ecb) 加密的密钥。我最终遇到了以下提到的错误。

错误:Decipheriv.createCipherBase 处的密钥长度无效(或)错误:Decipheriv.createCipherBase 处的 IV 长度无效

我找不到对我有帮助的 npm 包。

这是示例代码:

如果有人可以帮助我在 nodejs 中提供基于代码的示例。它将帮助我清楚地理解。

更新:

所需输出:“cdgLxoHvpeMoMd3eXISoMcgQFRxZeMSez5x3F2YVGT4=”

但是得到了这个:“G7z/eXQefnaeB7mYBq7KDrH+R4LtauNi6AU1v0/yObqoOidSOkIeW085DiMxdCDDjaI+hJiS2JRHDL1fdLrveg="

提前致谢。

0 投票
1 回答
38 浏览

encryption - 如何使 AesEncrypterHandler 以与 Aes 相同的方式加密

我正在尝试使用AesCryptoServiceProvider来实现与Aes. 这是我的AesCryptoServiceProvider版本:

这是Aes它的版本:

当我使用 version1 和 version2 加密相同的字符串时,它们就不同了。关于这两种方法有何不同以及如何使 version1 产生与 version2 相同的加密字符串的任何想法?(ps我对加密很陌生,如果答案很明显,我很抱歉)谢谢!

0 投票
2 回答
694 浏览

payment-gateway - AesCryptUtil 无法解析为 ccAvenue 支付网关中的类型

我在 spring mvc 项目中集成 ccAvenue 支付网关,我在其中添加了以下 3 个文件 1. dataForm.html 2. ccavRequestHandler.jsp 3. ccavResponseHandler.jsp

当我单击支付按钮时,我的项目中有支付按钮,然后它在填写所有详细信息后重定向到 dataForm.html 页面我单击结帐按钮,然后它重定向到我收到以下错误的 ccavRequestHandler.jsp 页面

我的 ccavRequestHandler.jsp 文件:

0 投票
0 回答
81 浏览

java - Java大文件AES加密很慢

我正在尝试使用 AES/CBC 算法加密 512 Mb 文件。大约需要 7 秒,这太多了。如何减少加密时间并使其更快。

我正在使用固定密钥并尝试使用 CipherOutStream 以及 cipher.update() 而不是 cipher.dofinal()。尽管如此,它仍然需要大约 7 秒。

使用以下加密方式加密 512 MB 文件通常需要多长时间。在配备 16 GB 内存和 2 GHz 四核 Intel Core i5 处理器的 Mac 上,我需要 6 秒。我正在使用 JDK 11 执行。这是正常的还是我的代码响应缓慢。我应该担心吗?如何提高加密时间。

0 投票
0 回答
40 浏览

.net - ECDiffieHellman 继承自 AsymmetricAlgorithm 但没有实现 ICspAsymmetricAlgorithm?

我试图了解 .NET 中的加密实现(大图)及其与 CSP 的关系,比如 CSP 可以使用哪些非对称算法,所以如果我想实现使用 CSP 的解决方案,我有哪些选择。我在Docs中读到了这个:

扩展 AsymmetricAlgorithm 类的类应实现 ICspAsymmetricAlgorithm 接口,以使用 CspKeyContainerInfo 对象枚举密钥容器信息,并导入和导出与 Microsoft Cryptographic API (CAPI) 兼容的密钥 blob。

但是,ECDiffieHellman, 继承自AsymmetricAlgorithm但不实现ICspAsymmetricAlgorithm.

0 投票
0 回答
63 浏览

c# - .NET Framework 4.8 中来自 AesCryptoServiceProvider 的 PlatformNotSupportedException

我正在开发基于 .NET Framework 4.8 的桌面应用程序。我们的数据收集已开始显示许多客户遇到AesCryptoServiceProvider. 突然之间,它的构造函数抛出了一个PlatformNotSupportedException. 我们的应用程序的新旧版本都会发生这种情况。这意味着我们的代码中没有任何更改触发了这种行为。根据 MS-CAPI,查看源代码时,如果根本找不到支持的 AES 密钥大小,则会引发此异常。

更奇怪的是,RijndaelManaged似乎工作正常。

我们在各种 Windows 10 版本、Windows 8.1 和 Windows Server 2012、各种计算机制造商以及世界各地都看到了这个问题。

有谁知道这可能是什么原因造成的?