/// <summary> /// 根据JAVA(SHA1WithRSA)验签 /// </summary> /// <param name="content">待验签字符串</param> /// <param name="signedString">签名</param> /// <param name="publicKey">公钥</param> /// <param name="input_charset">编码格式</param> /// <returns>true(通过),false(不通过)</returns> public static bool SHA1WithRSAVerify(string content, string signedString, string publicKey, Encoding encoding = null) { if (encoding == null) { encoding = Encoding.UTF8; } bool result = false; byte[] Data = encoding.GetBytes(content); byte[] data = Convert.FromBase64String(signedString); RSAParameters paraPub = RSAExt.ConvertFromPublicKey(publicKey); RSACryptoServiceProvider rsaPub = new RSACryptoServiceProvider(); rsaPub.ImportParameters(paraPub); SHA1 sh = new SHA1CryptoServiceProvider(); result = rsaPub.VerifyData(Data, sh, data); return(result); }
/// <summary> /// 根据JAVA(SHA1WithRSA)加密 /// </summary> /// <param name="content"></param> /// <param name="privateKey"></param> /// <param name="input_charset"></param> /// <returns></returns> public static string SHA1WithRSA(string content, string privateKey, Encoding encoding = null) { if (encoding == null) { encoding = Encoding.UTF8; } byte[] Data = encoding.GetBytes(content); RSACryptoServiceProvider rsa = RSAExt.DecodePemPrivateKey(privateKey); SHA1 sh = new SHA1CryptoServiceProvider(); byte[] signData = rsa.SignData(Data, sh); return(Convert.ToBase64String(signData)); }