Exemplo n.º 1
0
        //签名
        public static string getSign(string data)
        {
            RsaPkcs8Util m_pPrivateRsaPkcs8Util     = new RsaPkcs8Util(Encoding.GetEncoding(m_cConfigConstants.SYSTEM_ENCODING), null, m_cConfigConstants.PRIVATE_KEY);
            string       m_sPrivateSignBase64String = m_pPrivateRsaPkcs8Util.SignData(digest(data), HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1);

            return(m_sPrivateSignBase64String);
        }
 /// <summary>
 /// Sign with private key
 /// </summary>
 /// <param name="privateKey">Private key</param>
 /// <param name="data">Data</param>
 /// <returns></returns>
 public async Task <string> SignSignatureAsync(string privateKey, string data)
 {
     using (var rsaUtil = new RsaPkcs8Util(this.encoding, string.Empty, privateKey, this.keySize))
     {
         var isOk = rsaUtil.SignData(data, HashAlgorithmName.SHA256, this.signaturePadding);
         return(await Task.FromResult(isOk));
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// RSA 加密,解密,签名和验签
        /// </summary>
        public static void RSASignFunc(string privateKey, string publicKey, EnumUserType enumUserType)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            switch (enumUserType)
            {
            case EnumUserType.xml:
                RsaXmlUtil rsaXmlUtil   = new RsaXmlUtil(Encoding.UTF8, publicKey, privateKey);
                var        encrypt      = rsaXmlUtil.Encrypt("123456789", RSAEncryptionPadding.Pkcs1);
                var        encryptInput = rsaXmlUtil.Decrypt(encrypt, RSAEncryptionPadding.Pkcs1);
                Console.Write("XML加解密是否成功:");
                Console.WriteLine(encryptInput is "123456789");
                var sign       = rsaXmlUtil.SignData("987654321", HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
                var verifyData = rsaXmlUtil.VerifyData("987654321", sign, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
                Console.Write("XML签名是否成功");
                Console.WriteLine(verifyData);
                break;

            case EnumUserType.pkcs1:
                RsaPkcs1Util rsaPkcs1Util  = new RsaPkcs1Util(Encoding.UTF8, publicKey, privateKey);
                var          encrypt2      = rsaPkcs1Util.Encrypt("123456789", RSAEncryptionPadding.Pkcs1);
                var          encryptInput2 = rsaPkcs1Util.Decrypt(encrypt2, RSAEncryptionPadding.Pkcs1);
                Console.Write("PKCS1加解密是否成功:");
                Console.WriteLine(encryptInput2 is "123456789");
                var sign2       = rsaPkcs1Util.SignData("987654321", HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
                var verifyData2 = rsaPkcs1Util.VerifyData("987654321", sign2, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
                Console.Write("PKCS1签名是否成功");
                Console.WriteLine(verifyData2);
                break;

            default:
                RsaPkcs8Util rsaPkcs8Util  = new RsaPkcs8Util(Encoding.UTF8, publicKey, privateKey);
                var          encrypt3      = rsaPkcs8Util.Encrypt("123456789", RSAEncryptionPadding.Pkcs1);
                var          encryptInput3 = rsaPkcs8Util.Decrypt(encrypt3, RSAEncryptionPadding.Pkcs1);
                Console.Write("PKCS8加解密是否成功:");
                Console.WriteLine(encryptInput3 is "123456789");
                var sign3       = rsaPkcs8Util.SignData("987654321", HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
                var verifyData3 = rsaPkcs8Util.VerifyData("987654321", sign3, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
                Console.Write("PKCS8签名是否成功");
                Console.WriteLine(verifyData3);
                break;
            }
        }
Exemplo n.º 4
0
 public string Sign(string data)
 {
     Logger.LogDebug("sign string:\n {0}", data);
     return(rsaUtil.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1));
 }