* RSA加密解密:私钥解密,公钥加密。
* RSA数字签名-俗称加签验签:私钥加签,公钥验签。
java的公钥私钥是一串字符串,.net 公钥私钥是一串XML格式字符串,两者格式不是一致的,需要转换一下才能使用,具体请参考
使用的命名空间:
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
//初始化时生成公钥和私钥
RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
string privateKey = provider.ToXmlString(true);//生成私钥
string publicKey = provider.ToXmlString(false);//生成公钥
加签算法 和 验签算法 必须一致,举栗加签使用的是MD5算法那么验签也必须是MD5算法,不然就会验签失败。栗子中使用的是SHA256算法,对应JAVA的SHA256withRSA算法。
加签:
/// <summary>
/// 生成签名
/// </summary>
/// <param name="str">需签名的数据</param>
/// <param name="privateKey">私钥</param>
/// <param name="encoding">编码格式 默认utf-8</param>
/// <returns>签名后的值</returns>
pu