Esempio n. 1
0
 public static bool RSACheckContent(string signContent, string sign, string publicKeyPem, string charset, bool keyFromFile)
 {
     try
     {
         string sPublicKeyPEM;
         if (keyFromFile)
         {
             sPublicKeyPEM = File.ReadAllText(publicKeyPem);
         }
         else
         {
             sPublicKeyPEM = "-----BEGIN PUBLIC KEY-----\r\n";
             sPublicKeyPEM = sPublicKeyPEM + publicKeyPem;
             sPublicKeyPEM = sPublicKeyPEM + "-----END PUBLIC KEY-----\r\n\r\n";
         }
         RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
         rsa.PersistKeyInCsp = false;
         RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);
         SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
         if (string.IsNullOrEmpty(charset))
         {
             charset = DEFAULT_CHARSET;
         }
         bool bVerifyResultOriginal = rsa.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), sha1, Convert.FromBase64String(sign));
         return(bVerifyResultOriginal);
     }
     catch (Exception ex)
     {
         string s = ex.Message.ToString();
         return(false);
     }
 }
 public static bool RSACheckContent(string signContent, string sign, string publicKeyPem, string charset, string signType)
 {
     try
     {
         if (string.IsNullOrEmpty(charset))
         {
             charset = DEFAULT_CHARSET;
         }
         if ("RSA2".Equals(signType))
         {
             string sPEM = File.ReadAllText(publicKeyPem);
             RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider();
             rSACryptoServiceProvider.PersistKeyInCsp = false;
             RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rSACryptoServiceProvider, sPEM);
             return(rSACryptoServiceProvider.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), "SHA256", Convert.FromBase64String(sign)));
         }
         string sPEM2 = File.ReadAllText(publicKeyPem);
         RSACryptoServiceProvider rSACryptoServiceProvider2 = new RSACryptoServiceProvider();
         rSACryptoServiceProvider2.PersistKeyInCsp = false;
         RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rSACryptoServiceProvider2, sPEM2);
         SHA1CryptoServiceProvider halg = new SHA1CryptoServiceProvider();
         return(rSACryptoServiceProvider2.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), halg, Convert.FromBase64String(sign)));
     }
     catch
     {
         return(false);
     }
 }
Esempio n. 3
0
        public static string RSAEncrypt(string content, string publicKeyPem, string charset)
        {
            try
            {   // === AlexModified for hide KeyFile ================
                //string sPublicKeyPEM = File.ReadAllText(publicKeyPem);
                string sPublicKeyPEM;
                string fileName = Path.GetFileNameWithoutExtension(publicKeyPem);
                if (fileName == "alipay_rsa_public_key")
                {
                    sPublicKeyPEM = Encoding.UTF8.GetString(global::VoucherExpense.Properties.Resources.alipay_rsa_public_key);
                }
                else if (fileName == "rsa_public_key")
                {
                    sPublicKeyPEM = Encoding.ASCII.GetString(global::VoucherExpense.Properties.Resources.rsa_public_key);
                }
                else
                {
                    sPublicKeyPEM = File.ReadAllText(publicKeyPem);
                }
                // ==================================================
                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
                rsa.PersistKeyInCsp = false;
                RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);
                if (string.IsNullOrEmpty(charset))
                {
                    charset = DEFAULT_CHARSET;
                }
                byte[] data         = Encoding.GetEncoding(charset).GetBytes(content);
                int    maxBlockSize = rsa.KeySize / 8 - 11; //加密块最大长度限制
                if (data.Length <= maxBlockSize)
                {
                    byte[] cipherbytes = rsa.Encrypt(data, false);
                    return(Convert.ToBase64String(cipherbytes));
                }
                MemoryStream plaiStream = new MemoryStream(data);
                MemoryStream crypStream = new MemoryStream();
                Byte[]       buffer     = new Byte[maxBlockSize];
                int          blockSize  = plaiStream.Read(buffer, 0, maxBlockSize);
                while (blockSize > 0)
                {
                    Byte[] toEncrypt = new Byte[blockSize];
                    Array.Copy(buffer, 0, toEncrypt, 0, blockSize);
                    Byte[] cryptograph = rsa.Encrypt(toEncrypt, false);
                    crypStream.Write(cryptograph, 0, cryptograph.Length);
                    blockSize = plaiStream.Read(buffer, 0, maxBlockSize);
                }

                return(Convert.ToBase64String(crypStream.ToArray(), Base64FormattingOptions.None));
            }
            catch (Exception ex)
            {
                throw new AopException("EncryptContent = " + content + ",charset = " + charset, ex);
            }
        }
Esempio n. 4
0
        public static bool RSACheckContent(string signContent, string sign, string publicKeyPem, string charset, string signType, bool keyFromFile)
        {
            try
            {
                if (string.IsNullOrEmpty(charset))
                {
                    charset = DEFAULT_CHARSET;
                }

                string sPublicKeyPEM;

                if (keyFromFile)
                {
                    sPublicKeyPEM = File.ReadAllText(publicKeyPem);
                }
                else
                {
                    sPublicKeyPEM  = "-----BEGIN PUBLIC KEY-----\r\n";
                    sPublicKeyPEM += publicKeyPem;
                    sPublicKeyPEM += "-----END PUBLIC KEY-----\r\n\r\n";
                }


                if ("RSA2".Equals(signType))
                {
                    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider
                    {
                        PersistKeyInCsp = false
                    };
                    RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);

                    bool bVerifyResultOriginal = rsa.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), "SHA256", Convert.FromBase64String(sign));
                    return(bVerifyResultOriginal);
                }
                else
                {
                    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider
                    {
                        PersistKeyInCsp = false
                    };
                    RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);

                    SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
                    bool bVerifyResultOriginal     = rsa.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), sha1, Convert.FromBase64String(sign));
                    return(bVerifyResultOriginal);
                }
            } catch
            {
                return(false);
            }
        }
Esempio n. 5
0
        public static string RSAEncrypt(string content, string publicKeyPem, string charset, bool keyFromFile)
        {
            try
            {
                string sPublicKeyPEM;
                if (keyFromFile)
                {
                    sPublicKeyPEM = File.ReadAllText(publicKeyPem);
                }
                else
                {
                    sPublicKeyPEM  = "-----BEGIN PUBLIC KEY-----\r\n";
                    sPublicKeyPEM += publicKeyPem;
                    sPublicKeyPEM += "-----END PUBLIC KEY-----\r\n\r\n";
                }
                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider
                {
                    PersistKeyInCsp = false
                };
                RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);
                if (string.IsNullOrEmpty(charset))
                {
                    charset = DEFAULT_CHARSET;
                }
                byte[] data         = Encoding.GetEncoding(charset).GetBytes(content);
                int    maxBlockSize = rsa.KeySize / 8 - 11; //加密块最大长度限制
                if (data.Length <= maxBlockSize)
                {
                    byte[] cipherbytes = rsa.Encrypt(data, false);
                    return(Convert.ToBase64String(cipherbytes));
                }
                MemoryStream plaiStream = new MemoryStream(data);
                MemoryStream crypStream = new MemoryStream();
                Byte[]       buffer     = new Byte[maxBlockSize];
                int          blockSize  = plaiStream.Read(buffer, 0, maxBlockSize);
                while (blockSize > 0)
                {
                    Byte[] toEncrypt = new Byte[blockSize];
                    Array.Copy(buffer, 0, toEncrypt, 0, blockSize);
                    Byte[] cryptograph = rsa.Encrypt(toEncrypt, false);
                    crypStream.Write(cryptograph, 0, cryptograph.Length);
                    blockSize = plaiStream.Read(buffer, 0, maxBlockSize);
                }

                return(Convert.ToBase64String(crypStream.ToArray(), Base64FormattingOptions.None));
            } catch (Exception ex)
            {
                throw new AopException("EncryptContent = " + content + ",charset = " + charset, ex);
            }
        }
 public static string RSAEncrypt(string content, string publicKeyPem, string charset, bool keyFromFile)
 {
     try
     {
         string sPEM;
         if (keyFromFile)
         {
             sPEM = File.ReadAllText(publicKeyPem);
         }
         else
         {
             sPEM  = "-----BEGIN PUBLIC KEY-----\r\n";
             sPEM += publicKeyPem;
             sPEM += "-----END PUBLIC KEY-----\r\n\r\n";
         }
         RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider();
         rSACryptoServiceProvider.PersistKeyInCsp = false;
         RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rSACryptoServiceProvider, sPEM);
         if (string.IsNullOrEmpty(charset))
         {
             charset = DEFAULT_CHARSET;
         }
         byte[] bytes = Encoding.GetEncoding(charset).GetBytes(content);
         int    num   = rSACryptoServiceProvider.KeySize / 8 - 11;
         if (bytes.Length <= num)
         {
             byte[] inArray = rSACryptoServiceProvider.Encrypt(bytes, fOAEP: false);
             return(Convert.ToBase64String(inArray));
         }
         MemoryStream memoryStream  = new MemoryStream(bytes);
         MemoryStream memoryStream2 = new MemoryStream();
         byte[]       array         = new byte[num];
         for (int num2 = memoryStream.Read(array, 0, num); num2 > 0; num2 = memoryStream.Read(array, 0, num))
         {
             byte[] array2 = new byte[num2];
             Array.Copy(array, 0, array2, 0, num2);
             byte[] array3 = rSACryptoServiceProvider.Encrypt(array2, fOAEP: false);
             memoryStream2.Write(array3, 0, array3.Length);
         }
         return(Convert.ToBase64String(memoryStream2.ToArray(), Base64FormattingOptions.None));
     }
     catch (Exception innerException)
     {
         throw new AopException("EncryptContent = " + content + ",charset = " + charset, innerException);
     }
 }
Esempio n. 7
0
        public static bool RSACheckContent(string signContent, string sign, string publicKeyPem, string charset, string signType)
        {
            try
            {
                if (string.IsNullOrEmpty(charset))
                {
                    charset = DEFAULT_CHARSET;
                }
                if ("RSA2".Equals(signType))
                {
                    string sPublicKeyPEM = File.ReadAllText(publicKeyPem);

                    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
                    rsa.PersistKeyInCsp = false;
                    RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);

                    bool bVerifyResultOriginal = rsa.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), "SHA256", Convert.FromBase64String(sign));
                    return(bVerifyResultOriginal);
                }
                else
                {
                    bool bVerifyResultOriginal = false;
                    try
                    {
                        string sPublicKeyPEM         = publicKeyPem;// File.ReadAllText(publicKeyPem);
                        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
                        rsa.PersistKeyInCsp = false;
                        RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);

                        SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();

                        bVerifyResultOriginal = rsa.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), sha1, Convert.FromBase64String(sign));
                    }
                    catch (Exception ex)
                    {
                    }

                    return(bVerifyResultOriginal);
                }
            }
            catch
            {
                return(false);
            }
        }
Esempio n. 8
0
 public static string RSAEncrypt(string content, string publicKeyPem, string charset)
 {
     try
     {
         var sPublicKeyPEM = File.ReadAllText(publicKeyPem);
         var rsa           = new RSACryptoServiceProvider();
         rsa.PersistKeyInCsp = false;
         RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);
         if (string.IsNullOrEmpty(charset))
         {
             charset = DEFAULT_CHARSET;
         }
         var data         = Encoding.GetEncoding(charset).GetBytes(content);
         var maxBlockSize = rsa.KeySize / 8 - 11; //加密块最大长度限制
         if (data.Length <= maxBlockSize)
         {
             var cipherbytes = rsa.Encrypt(data, false);
             return(Convert.ToBase64String(cipherbytes));
         }
         var plaiStream = new MemoryStream(data);
         var crypStream = new MemoryStream();
         var buffer     = new byte[maxBlockSize];
         var blockSize  = plaiStream.Read(buffer, 0, maxBlockSize);
         while (blockSize > 0)
         {
             var toEncrypt = new byte[blockSize];
             Array.Copy(buffer, 0, toEncrypt, 0, blockSize);
             var cryptograph = rsa.Encrypt(toEncrypt, false);
             crypStream.Write(cryptograph, 0, cryptograph.Length);
             blockSize = plaiStream.Read(buffer, 0, maxBlockSize);
         }
         return(Convert.ToBase64String(crypStream.ToArray()));
     }
     catch (Exception ex)
     {
         throw new AopException("EncryptContent = " + content + ",charset = " + charset, ex);
     }
 }
Esempio n. 9
0
 public static bool RSACheckContent(string signContent, string sign, string publicKeyPem, string charset)
 {
     try
     {
         //string sPublicKeyPEM = File.ReadAllText(publicKeyPem);
         publicKeyPem = string.Format("-----BEGIN PUBLIC KEY-----{0}-----END PUBLIC KEY-----", publicKeyPem);
         RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
         rsa.PersistKeyInCsp = false;
         //RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);
         RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, publicKeyPem);
         SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
         if (string.IsNullOrEmpty(charset))
         {
             charset = DEFAULT_CHARSET;
         }
         bool bVerifyResultOriginal = rsa.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), sha1, Convert.FromBase64String(sign));
         return(bVerifyResultOriginal);
     }
     catch
     {
         return(false);
     }
 }
Esempio n. 10
0
 public static bool RSACheckContent(string signContent, string sign, string publicKeyPem, string charset)
 {
     try
     {   // === AlexModified for hide KeyFile ================
         //string sPublicKeyPEM = File.ReadAllText(publicKeyPem);
         string sPublicKeyPEM;
         string fileName = Path.GetFileNameWithoutExtension(publicKeyPem);
         if (fileName == "alipay_rsa_public_key")
         {
             sPublicKeyPEM = Encoding.UTF8.GetString(global::VoucherExpense.Properties.Resources.alipay_rsa_public_key);
         }
         else if (fileName == "rsa_public_key")
         {
             sPublicKeyPEM = Encoding.ASCII.GetString(global::VoucherExpense.Properties.Resources.rsa_public_key);
         }
         else
         {
             sPublicKeyPEM = File.ReadAllText(publicKeyPem);
         }
         // ==================================================
         RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
         rsa.PersistKeyInCsp = false;
         RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM);
         SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
         if (string.IsNullOrEmpty(charset))
         {
             charset = DEFAULT_CHARSET;
         }
         bool bVerifyResultOriginal = rsa.VerifyData(Encoding.GetEncoding(charset).GetBytes(signContent), sha1, Convert.FromBase64String(sign));
         return(bVerifyResultOriginal);
     }
     catch
     {
         return(false);
     }
 }