.net - 使用 x509 证书的 rsacryptoserviceprovider c#

标签 .net security cryptography encryption-asymmetric

我正在使用由 makecert 生成的证书,该证书具有私钥和公钥。
java端使用这个公钥加密数据,.net解密回来。

我正在尝试解密 Java 的加密 64 位编码字符串并获取错误数据。

为了查看.Net 端是否一切正常,我首先尝试使用公钥加密,然后使用相同的证书使用私钥进行解密。我的代码看起来像这样。

X509Certificate2 cert = GetCert(key, StoreName.My, StoreLocation.LocalMachine);
RSACryptoServiceProvider provider =  (RSACryptoServiceProvider)cert.PrivateKey;

RSACryptoServiceProvider publicprovider = (RSACryptoServiceProvider)cert.PublicKey.Key;

if (cert.HasPrivateKey)
    MessageBox.Show("Got private key");

byte[] encrypted = publicprovider.Encrypt(Encoding.UTF8.GetBytes(text), false);
byte[] decryptedBytes = provider.Decrypt(encrypted, false); 

即使在这里我也收到错误。我错过了什么吗?

证书看起来对公钥和私钥都有效。

最佳答案

我在使用自签名证书时遇到了同样的问题,问题是我使用开关生成证书 -sky signature而不是 -sky exchange (您使用签名进行签名和交换进行加密/解密)

这是我对 makecert 有效的完整命令:

makecert -r -pe -a sha1 -n "CN=MyName" -ss my -sr CurrentUser -sky exchange

关于.net - 使用 x509 证书的 rsacryptoserviceprovider c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1623189/

相关文章:

c# - 如何从 Crystal 报表中调用存储过程?

c# - namespace 中不存在“接口(interface)”

.net - OperationVetoedException - 更新现有(唯一)文档时

jquery - 禁用使用安全组件和 jQuery 的 CakePHP 表单中的输入元素

node.js - 网络安全。我是否正确保护了我的 REST api? (node.js 表达)

security - 了解metasploits meterpreter有效负载

java - AES 256-CBC 上的 key 和 iv 问题

c - 在密码学、C 编程方面需要帮助

.net - 创建互斥锁时出现UnauthorizedAccessException

c# - 如何安全地处理 AES “Key” 和 “IV” 值