问题标签 [cryptographicexception]

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 回答
2819 浏览

c# - System.Security.Cryptography.CryptographicException:系统找不到指定的文件

我从部署机器中得到了这个异常,这在我的开发机器中没有发生。这是一个 .net 框架网站。

我的案例是网站中使用的 SDK 之一是读取 RSA private_keys.pem 文件。并在 github 中查看该 SDK 代码:

SDK 在我的开发机器上运行良好,但在部署机器上却不行。我不知道找不到什么指定的文件,我认为它不是 private_key.pem 文件。

所以我四处寻找,试图找出 Cryptogrphy 的工作原理。这是我发现的,如有错误请指出。看起来像 cryptoAPI,创建一个 RSA 密钥容器,如果应用程序级别没有权限访问密钥容器,它会抛出异常。那是在寻找指定的文件系统吗?

如果是,如何解决?

0 投票
1 回答
1147 浏览

.net - Azure 上的 .Net CryptographicException“对象已存在”

我们在 Azure 上的两个 Web 应用程序上部署了一个网站:一个生产版本和一个预生产版本。

该网站在特定时间使用以下代码创建一个容器来托管 RSA 密钥:

问题是此代码仅适用于其中一个网站,即实际首次启动的网站。第二个抛出 CryptographicException “对象已存在”。

谷歌搜索后,该问题似乎是由执行网站的用户无权访问密钥容器引起的,但不幸的是,推荐的修复(在我们上面的代码的第 2 部分中实现)不起作用..

有什么想法或建议吗?

谢谢

里亚纳

0 投票
1 回答
1147 浏览

c# - CryptographicException:通过 RijndaelManaged 解密二进制文件时输入块大小无效

我想通过javascript在服务器端加密一个二进制文件,并在Unity中通过c#在客户端解密。

代码服务器端:

客户端 c# 上的代码:

我成功获得了加密二进制文件,但是当我在客户端解密它时,我得到了错误:

谁能为我提供一些解决这个问题的方法?谢谢!

0 投票
1 回答
5877 浏览

azure-webjobs - System.Security.Cryptography.CryptographicException:“在密钥环中找不到密钥 {00000000-0000-0000-0000-000000000000}。”

我部署了一个网络作业(.Net 4.6),它加密一些 url 字符串并通过电子邮件将其发送给客户。我使用 .NET Core 的 IDataProtector 进行加密,我不得不手动引用 DLL,因为 webjob .net 4.6 不支持它的库。

例如在网络作业中:

这成为一个链接

在电子邮件中。

当客户点击他们电子邮件中的 url 链接时,它将转到我的客户端应用程序(.Net Core 1.1) 控制器来解密 url 字符串以弹出协议页面。

前任:

但是,当我尝试取消保护它们时收到以下错误消息:

System.Security.Cryptography.CryptographicException:“在密钥环中找不到密钥 {00000000-0000-0000-0000-000000000000}。”

当我搜索答案时,我意识到我可以配置数据保护来将密钥存储到 Azure Blob 存储。此链接向我展示了如何将密钥持久保存到 azure blob 存储。

问题:

  1. 除了将密钥存储到 azure blob 存储之外,最好的方法是什么?
  2. 如果我在正确的轨道上,我该如何存储它?
  3. 如何为 webjob 项目配置相同的设置,如没有 Startup.cs 用于配置的链接中所示?

非常感谢您的帮助。

0 投票
1 回答
510 浏览

c# - 模拟到 X509Store.Add 到 StoreName.Root - 不支持请求

我找不到与我遇到的错误相关的任何内容。

问题是我在store.Add下面遇到 CryptographicException:

“不支持该请求。”

MSDN 文档不是很有帮助,它指出:

无法将证书添加到存储中。

我使用以下代码作为指导,并进行了以下更改:

  • 他们正在添加到 StoreName.My,我想添加到 StoreName.Root
  • 我想使用 IDisposable 类来模拟用户。

我的概念验证代码(删节/伪劣):

我可以删除模拟并且不会引发异常,但这不是正确的用户商店。

StoreName.AuthRoot通过模拟,我可以毫无例外地将证书放入。这不是我希望证书进入的商店。

这些无异常的解决方案都不起作用。我要求程序以提升的权限运行并进入另一个用户的商店。

0 投票
0 回答
83 浏览

.net - 将加载用户配置文件设置为 true 以获得加密异常,但它正在 AppData 中写入日志

我有一个 WCF 服务,它依次调用其他服务并使用 .p12 密钥进行验证。我已将应用程序池中的加载用户配置文件设置为 true 以处理“未处理 CryptographicException:系统找不到指定的文件”异常。在此更改之后,每个服务调用都将日志写入以下路径 - C:\Users\AppPool\AppData\Roaming\Microsoft\Crypto\RSA。任何人都可以请帮助如何消除将日志写入指定路径。

PS: - 以前服务用于将加载用户配置文件设置为 false,并且没有写入路径的日志。这在 AppPool 中将 Load User Profile 设置为 TRUE 后发生。

提前致谢。

0 投票
1 回答
1138 浏览

x509certificate2 - 以编程方式从 PFX 文件加载 X509Certificate2 时出现 CryptographicException:

在 tmpAEC4.pfx 文件中,我在此消息的底部有表示证书集的内容。当我尝试实例化 X509Certificate2 时:

我收到以下异常

密码是正确的,就像我手动导入pfx一样,它可以工作。任何想法?

证书:

0 投票
1 回答
319 浏览

c# - SignedXml.LoadXml() 引发 CryptographicException

我与外部 WebService 建立了连接,该服务运行了很长时间,直到 2018 年 5 月中旬。突然,我开始收到 CryptographicException 消息“格式错误的 XML 签名”。我的调查告诉我以下信息:

异常从 LoadXml(signature); 行抛出。在继承自 System.Security.Cryptography.Xml.SignedXml 的类中

这是代码:

到目前为止我学到的是:我和一位同事在两个不同版本的 windows 10 上本地测试了代码。他的版本比我的版本新。他得到了错误,而我没有。

代码处理的xml是一样的

该错误始于 2018 年 5 月 16 日,并且在该日期服务器安装了此安全更新https://support.microsoft.com/da-dk/help/4099635/security-and-quality-rollup-for-net-framework -3-5-4-5-2-4-6-4-6-1-4-6

我们知道之前的类似更新导致了类似的问题: https: //support.microsoft.com/en-us/help/3148821/after-you-apply-security-update-3141780-net-framework-applications-enc

有没有人知道如何解决这个问题(还有其他人遇到这个问题吗)?

PS。该代码在 Windows srv 2012 R2 上运行,并且该问题也存在于 Windows srv 2016 上

0 投票
1 回答
162 浏览

asp.net-core - 指定的初始化向量 (IV) 与在 asp.net 核心中使用 TripleDesImplementation 的算法的块大小不匹配

我们正在使用带有TripleDesImplementation算法加密的 ASP.NET Core。

解密代码如下:

但是在解密时,它会抛出如下错误:

指定的初始化向量 (IV) 与此算法的块大小不匹配。
参数名称:rgbIV

它在一个普通的 Asp.Net 网站上工作,但现在它抛出了一个错误。

0 投票
0 回答
1127 浏览

java - 如何让openjdk 11支持椭圆曲线密码算法?

尝试在 Java 应用程序中调用 https URL 时出现错误“javax.net.ssl.SSLException:无法生成 ECDH 密钥对”。它在 Oracle JDK 1.8.0.152 上运行良好。当我们迁移到 Openjdk 11 时它不工作。

如何让openjdk 11支持椭圆曲线密码算法?

注意:我们使用 windows 10 服务器,Tomcat8,我们使用可信 CA 证书