示例#1
0
        /// <summary>
        /// 使用私钥签名
        /// </summary>
        /// <param name="data">原始数据</param>
        /// <returns></returns>
        public string Sign(string data)
        {
            byte[] dataBytes = _encoding.GetBytes(data);

            var signatureBytes = _privateKeyRsaProvider.SignData(dataBytes, _hashAlgorithmName, RSASignaturePadding.Pkcs1);

            if (IsBase64)
            {
                return(Convert.ToBase64String(signatureBytes));
            }
            else
            {
                return(HexByte.ByteToHexStr(signatureBytes));
            }
        }
示例#2
0
 public RSA CreateRsaProviderFromPublicKey(string publicKeyString)
 {
     byte[] x509Key;
     if (!IsBase64)
     {
         //如果是十六进制,则将十六进制转为byte
         x509Key = HexByte.StrToToHexByte(publicKeyString);
     }
     else
     {
         //否则默认为base64
         x509Key = Convert.FromBase64String(publicKeyString);
     }
     return(CreateRsaProvider.CreateRsaProviderFromPublicKey(x509Key));
 }
示例#3
0
 public RSA CreateRsaProviderFromPrivateKey(string privateKey)
 {
     byte[] privateKeyBits;
     if (!IsBase64)
     {
         //如果是十六进制,则将十六进制转为byte
         privateKeyBits = HexByte.StrToToHexByte(privateKey);
     }
     else
     {
         //否则默认为base64
         privateKeyBits = Convert.FromBase64String(privateKey);
     }
     return(CreateRsaProvider.CreateRsaProviderFromPrivateKey(privateKeyBits));
 }
示例#4
0
 public string Encrypt(string text)
 {
     if (_publicKeyRsaProvider == null)
     {
         throw new ArgumentNullException("_publicKeyRsaProvider is null");
     }
     byte[] textBits = _publicKeyRsaProvider.Encrypt(_encoding.GetBytes(text), RSAEncryptionPadding.Pkcs1);
     if (IsBase64)
     {
         return(Convert.ToBase64String(textBits));
     }
     else
     {
         return(HexByte.ByteToHexStr(textBits));
     }
 }
示例#5
0
 public string Decrypt(string cipherText)
 {
     if (_privateKeyRsaProvider == null)
     {
         throw new ArgumentNullException("_privateKeyRsaProvider is null");
     }
     byte[] textBits;
     if (IsBase64)
     {
         textBits = Convert.FromBase64String(cipherText);
     }
     else
     {
         textBits = HexByte.StrToToHexByte(cipherText);
     }
     return(_encoding.GetString(_privateKeyRsaProvider.Decrypt(textBits, RSAEncryptionPadding.Pkcs1)));
 }
示例#6
0
        /// <summary>
        /// 使用公钥验证签名
        /// </summary>
        /// <param name="data">原始数据</param>
        /// <param name="sign">签名</param>
        /// <returns></returns>
        public bool Verify(string data, string sign)
        {
            byte[] dataBytes = _encoding.GetBytes(data);
            byte[] signBytes;
            if (IsBase64)
            {
                signBytes = Convert.FromBase64String(sign);
            }
            else
            {
                signBytes = HexByte.StrToToHexByte(sign);
            }

            var verify = _publicKeyRsaProvider.VerifyData(dataBytes, signBytes, _hashAlgorithmName, RSASignaturePadding.Pkcs1);

            return(verify);
        }