c# – 如何使用RSACryptoServiceProvider解密加密文本?
我使用RSACryptoServiceProvider加密了一个文本.我导出了公钥和私钥.显然我只是想在解码器应用程序中公开公钥,所以我编写了如下代码:
private const string PublicKey = "<RSAKeyValue><Modulus>sIzQmj4vqK0QPd7RXKigD7Oi4GKPwvIPoiUyiKJMGP0qcbUkRPioe2psE/d3c1a2NY9oj4Da2y1qetjvKKFad2QAhXuql/gPIb1WmI+f6q555GClvHWEjrJrD/ho7SLoHbWd6oY6fY609N28lWJUYO97RLVaeg2jfNAUSu5bGC8=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"; private string Decrypt() { byte[] encryptedKeyAsBytes = Convert.FromBase64String(_encryptedKey); RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.FromXmlString(PublicKey); // read ciphertext,decrypt it to plaintext byte[] plainBytes = rsa.Decrypt(encryptedKeyAsBytes,false); string plainText = System.Text.Encoding.ASCII.GetString(plainBytes); return plainText; } 但是在“byte [] plainBytes = rsa.Decrypt(encryptedKeyAsBytes,false);”行引发异常; 解决方法
你不能 – 这是公钥/私钥加密的重点.公众进行加密;私人进行解密.
听起来你需要某种密钥交换模式.例如;如果你的解码器应用程序试图解密来自另一个数据源(源应用程序)的信息,我会实现这样的事情: >源应用程序生成对称密钥,如AES. 只有一个例子;但说明了如何在两个应用程序之间交换数据的基础知识,而无需通过网络传输任何敏感信息.根本不需要对称密钥;但这是一种非常常见的模式,因为RSA在加密大量信息时开始引入问题. RSA最好只加密对称加密密钥. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在oracle中将字符串转换为整数
- c# – 为什么我们不需要在`using`范围之外返回一个值?
- react-router 4.0的使用方法
- ruby-on-rails – 未初始化的常量Base64
- c – 成员函数的std :: is_function?
- 为什么结构不能在C 11或更高版本的函数声明中定义?
- ruby-on-rails – 如何使用Twitter Bootstrap Rails gem定义
- iostat命令输出中的dm-x设备是多路径聚合之后的哪个设备?
- ruby-on-rails – 在rspec-rails中,assign做了什么?
- Flex中的itemRenderer如何分发事件其所有者才能接收到