Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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));
        }