问题标签 [rsacryptoserviceprovider]

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

java - 如何加载文件 privakey 文件类型是 pem

我加载私有(private.pem)我的代码是:

错误是: 引起:

谢谢。

0 投票
1 回答
764 浏览

c# - .NET 签名字符串使用 openssl_public_decrypt 验证 RSA 签名失败

我正在尝试将 X509Certificate2 和 RSACryptoServiceProvider 与 PHP OpenSSL 命令一起使用来实现双向相互安全。

从 PHP 向 C# 发送消息似乎一切都很好,.NET 服务器上的 RSACryptoServiceProvider 可以使用它自己的私钥解密消息并使用 PHP 服务器的公钥验证签名。

但反过来说,.NET 到 PHP,使用“openssl_public_decrypt”来验证 .NET 服务器的签名会造成麻烦。它只是返回假。'openssl_private_decrypt' 可以很好地使用 PHP 服务器的私钥解密加密数据。

我使用 openssl(.key 和 .crt)为两台服务器创建了 RSA(2048)自签名证书,然后创建了一个 .pfx 以用作 .NET 代码中的私钥。

我想知道这里有什么问题。我在 .NET 和 PHP 服务器上都使用默认设置进行加密/解密。当您使用 .pfx 加密某些内容时,加密/解密机制是否不同?或者 openssl_public_decrypt 是否期望与 RSACryptoServiceProvider 给你的加密不同?

任何帮助都会很棒,因为我不确定问题出在哪里。

0 投票
1 回答
2548 浏览

c# - 使用 RSACryptoProvider 在 C# 中验证 PHP OpenSSL 签名

我正在尝试使用 C#验证OpenSSL签名。它使用正确的公钥证书返回 false。(created using openssl_sign with SHA1 in PHP)RSACryptoProvider.VerifyData

关于如何成功做到这一点的任何想法?

编辑:

我尝试使用以下代码使用 BouncyCastle 验证 OpenSSL SHA1 签名,但验证失败。签名的计算方式是否不同?如何使用 OpenSSL 创建可由 .NET 验证的签名?

PHP代码:

0 投票
2 回答
268 浏览

c# - 从 C# 中的证书中提取公钥

如何从 x509 v.3 证书中获取私钥并将其存储在一个RSACryptoServiceProvider类中?

0 投票
1 回答
3750 浏览

encryption - 在 C# 中生成公钥和私钥对并将公钥保存为纯文本

我需要在 C# 应用程序和微控制器 (pic32mx795) 之间实现加密。我遇到的问题是生成我正在使用 RSACryptoServiceProvider 的公钥和私钥对,但我只能获取密钥属性而不是完整的公钥。

我无法为微控制器提供关键参数,因为它只需要密钥(作为字节)。有一个库可以做到这一点,但它只能在 2012 年 11 月的某个时候提供(SW300055)。我正在使用 SW300052 库对微控制器执行加密(密钥大小限制为 256 位)。

我还在这个线程中尝试了 bouncycastle 建议(生成密钥并在文本框中显示它们)。它以 PEM 格式保存密钥。据我了解,密钥以 base64 格式保存。我已将密钥长度指定为 256 位,但是当将公钥转换回字节时,它是 62 字节。

我还查看了 Microsoft 的强名称工具 (sn.exe),但它支持的最小密钥大小为 384 位。

有什么方法可以生成公钥对并使用 c#(或任何其他工具)以纯文本/字节形式获取公钥?我是否最好使用对称密钥加密来加密会话密钥?

0 投票
0 回答
643 浏览

c# - 解密 RSACryptoServiceProvider.SignData() 创建的签名以获取哈希

我正在尝试检索使用RSACryptoServiceProviderSignDataSignHash方法创建的哈希。我需要它来存储必须稍后检索的加密哈希,因为它们是哈希链的一部分。

最初我想手动加密和解密哈希,使用私钥进行加密,但库不允许这样做。

我找不到执行此操作的方法,并且我所有的搜索都返回了有关私钥加密如何是一个坏主意的答案(当不使用它进行签名时......)。

0 投票
2 回答
5156 浏览

c# - 使用私钥 (RSA) 解密字符串

我有一个公钥和一个私钥,还有一个我想解密的字符串。

公钥格式如下:

私钥采用以下格式:

我要解密的字符串已使用公钥加密,然后我需要使用私钥对其进行解密。

我想知道我将如何去做这件事。

我一直在研究这个并发现RSACryptoServiceProvider,但对于加密/解密来说,似乎希望密钥采用带有模数和指数的 XML 格式。

我的问题是,有没有一种方法可以使用我拥有的数据生成具有模数和指数的 XML 格式,或者是否有另一种方法可以使用我拥有的数据解密字符串。

0 投票
1 回答
239 浏览

windows-8 - 在云中验证 ASHWID (HardwareToken) 的问题

我正在尝试使用 azure (.net 4.5) 服务验证 HardwareIdentification.GetPackageSpecificToken 颁发的 HardwareToken。我遵循了官方的指导。但我被困在最后一次检查中。我不明白为什么签名检查总是失败(所有其他检查,如检查证书链、加权硬件令牌比较或根证书公钥匹配都工作正常)。

这是我用来执行签名验证的代码: var publicKeyProvider = leaf.PublicKey.Key as System.Security.Cryptography.RSACryptoServiceProvider;

我还尝试使用具有相同结果的 VerifyData,它总是返回 False(无论我是否使用随机数)。

我在这里上传了一个非常基本的示例项目:https ://github.com/sandorfr/sandor/tree/master/W8/HardwareTokenSample

有人遇到/解决了这个问题吗?

最好的祝福,

0 投票
2 回答
22821 浏览

c# - RSACryptoServiceProvider 用自己的公钥和私钥初始化

我正在尝试使用我自己的公钥和私钥初始化 RSACryptoServiceProvider。

据我所知,这样做的方法是调用构造函数

cspParams 如上图所示。但是,当我查看有关使用它的 msdn 示例时:http: //msdn.microsoft.com/en-us/library/ca5htw4f.aspx

我没有看到他们设置私钥或公钥的任何地方。仅使用 KeyContainer。当我创建一个没有 cspParam 的 RSACryptoServiceProvider 时,它默认设置为仅使用公钥。当我检查类本身的 PublicOnly 变量时,我注意到了这一点,它是一个只读变量。

我的问题是如何初始化这个类,然后设置我自己的私钥和公钥。服务器将使用私钥,客户端将拥有公钥。

我发现创建一个 RSAParameter 对象并将其上的 .Exponent 和 .Modulus 参数分别设置为公共和私有变量。

但是我收到“缺少私钥”错误,因为我相信 RSACryptoServiceProvider 没有使用正确的构造函数进行初始化。

下面是我的一些代码。不用担心 BigInteger 类,这只是一个实验。无论我是否使用它,我都会得到同样的错误。

0 投票
0 回答
551 浏览

.net-4.0 - RSACryptoServiceProvider.ImportParameters ObjectDisposedException

我们有一个网络服务,我们想签署一个传入的请求并进一步发送它。我们正在使用 System.Security.Cryptography.RSACryptoServiceProvider 的静态对象,并且每个实例都使用相同的静态对象对其进行签名。我在微软上读到静态对象对于这个类是线程安全的。

问题是,在 web 服务负载很重的情况下,签名失败,但出现以下异常: