private static void RSA_ECB_PKCS1Padding() { var data = "hello rsa"; Console.WriteLine($"加密原文:{data}"); // rsa pkcs8 private key encrypt //algorithm rsa/ecb/pkcs1padding var pkcs8data = RSA.EncryptToBase64(data, RSAUtilities.GetAsymmetricKeyParameterFormAsn1PrivateKey(pkcs8_1024_private_key), CipherAlgorithms.RSA_ECB_PKCS1Padding); Console.WriteLine("密钥格式:pkcs8,密文算法:rsa/ecb/pkcs1padding,加密结果"); Console.WriteLine(pkcs8data); //rsa pkcs1 private key encrypt //algorithm rsa/ecb/pkcs1padding var pkcs1data = RSA.EncryptToBase64(data, RSAUtilities.GetAsymmetricKeyParameterFormPrivateKey(pkcs1_1024_private_key), CipherAlgorithms.RSA_ECB_PKCS1Padding); Console.WriteLine($"密钥格式:pkcs1,密文算法:rsa/ecb/pkcs1padding"); Console.WriteLine(pkcs1data); Console.WriteLine($"加密结果比对是否一致:{pkcs8data.Equals(pkcs1data)}"); var _1024_public_key = RSAKeyConverter.GetPublicKeyFromPrivateKeyPkcs1(pkcs1_1024_private_key); Console.WriteLine($"从pkcs1私钥中提取公钥:"); Console.WriteLine(_1024_public_key); Console.WriteLine("使用公钥解密数据:"); //rsa public key decrypt //algorithm rsa/ecb/pkcs1padding Console.WriteLine(RSA.DecryptFromBase64(pkcs1data, RSAUtilities.GetAsymmetricKeyParameterFormPublicKey(_1024_public_key), CipherAlgorithms.RSA_ECB_PKCS1Padding)); Console.WriteLine(); }
private static void RSA_NONE_PKCS1Padding() { var data = "RSA_NONE_PKCS1Padding"; //rsa pkcs1 private key encrypt var encryptdata1 = RSA.EncryptToBase64(data, RSAUtilities.GetAsymmetricKeyParameterFormPrivateKey(pkcs1_1024_private_key), CipherAlgorithms.RSA_NONE_PKCS1Padding); Console.WriteLine(encryptdata1); //rsa pkcs1 private key encrypt //algorithm rsa/none/pkcs1padding var encryptdata2 = RSA.EncryptToBase64(data, RSAUtilities.GetAsymmetricKeyParameterFormAsn1PrivateKey(pkcs8_1024_private_key), CipherAlgorithms.RSA_NONE_PKCS1Padding); Console.WriteLine(encryptdata2); Console.WriteLine(encryptdata1.Equals(encryptdata2)); var _1024_public_key = RSAKeyConverter.GetPublicKeyFromPrivateKeyPkcs1(pkcs1_1024_private_key); //rsa public key decrypt //algorithm rsa/none/pkcs1padding Console.WriteLine(RSA.DecryptFromBase64(encryptdata2, RSAUtilities.GetAsymmetricKeyParameterFormPublicKey(_1024_public_key), CipherAlgorithms.RSA_NONE_PKCS1Padding)); Console.WriteLine(); }
private static void SHA256WithDSASample() { var keyParameter = DSAKeyGenerator.Generator(); var sign = SHA256WithDSA.GenerateSignature("hello dsa", RSAUtilities.GetAsymmetricKeyParameterFormAsn1PrivateKey(keyParameter.PrivateKey)); Console.WriteLine($"sign:{sign}"); var verified = SHA256WithDSA.VerifySignature("hello dsa", sign, RSAUtilities.GetAsymmetricKeyParameterFormPublicKey(keyParameter.PublicKey)); Console.WriteLine(verified ? "signature verified" : "signature not verified"); }