问题标签 [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.
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
,也许它可能不需要填充?
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="
提前致谢。
encryption - 如何使 AesEncrypterHandler 以与 Aes 相同的方式加密
我正在尝试使用AesCryptoServiceProvider
来实现与Aes
. 这是我的AesCryptoServiceProvider
版本:
这是Aes
它的版本:
当我使用 version1 和 version2 加密相同的字符串时,它们就不同了。关于这两种方法有何不同以及如何使 version1 产生与 version2 相同的加密字符串的任何想法?(ps我对加密很陌生,如果答案很明显,我很抱歉)谢谢!
payment-gateway - AesCryptUtil 无法解析为 ccAvenue 支付网关中的类型
我在 spring mvc 项目中集成 ccAvenue 支付网关,我在其中添加了以下 3 个文件 1. dataForm.html 2. ccavRequestHandler.jsp 3. ccavResponseHandler.jsp
当我单击支付按钮时,我的项目中有支付按钮,然后它在填写所有详细信息后重定向到 dataForm.html 页面我单击结帐按钮,然后它重定向到我收到以下错误的 ccavRequestHandler.jsp 页面
我的 ccavRequestHandler.jsp 文件:
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 执行。这是正常的还是我的代码响应缓慢。我应该担心吗?如何提高加密时间。
.net - ECDiffieHellman 继承自 AsymmetricAlgorithm 但没有实现 ICspAsymmetricAlgorithm?
我试图了解 .NET 中的加密实现(大图)及其与 CSP 的关系,比如 CSP 可以使用哪些非对称算法,所以如果我想实现使用 CSP 的解决方案,我有哪些选择。我在Docs中读到了这个:
扩展 AsymmetricAlgorithm 类的类应实现 ICspAsymmetricAlgorithm 接口,以使用 CspKeyContainerInfo 对象枚举密钥容器信息,并导入和导出与 Microsoft Cryptographic API (CAPI) 兼容的密钥 blob。
但是,ECDiffieHellman
, 继承自AsymmetricAlgorithm
但不实现ICspAsymmetricAlgorithm
.
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、各种计算机制造商以及世界各地都看到了这个问题。
有谁知道这可能是什么原因造成的?