using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace 加密
{
class Program
{
static void Main(string[] args)
{
//RSA
//var dicKey = RSAHelper.GetKey();
//Console.WriteLine($"{dicKey["PublicKey"]}\r\n{dicKey["PrivateKey"]}");
//string strText = "aaabbbcc";
//Console.WriteLine("要加密的字符串是:{0}", strText);
//string str1 = RSAHelper.Encrypt(strText, dicKey["PublicKey"]);
//Console.WriteLine("加密后的字符串:{0}", str1);
//string str2 = RSAHelper.Decrypt(str1, dicKey["PrivateKey"]);
//Console.WriteLine("解密后的字符串:{0}", str2);
//AES
string password = "abcAE#$M&*987";
Console.WriteLine($"原始密码为:{password} ");
// AES的key支持128位,最大支持256位。256位需要32个字节。
//string key = "1234567890qwerty1234567890qwerty";//32字节
string key = AESHelper.GetRandomStr(32, true, true, true, true);
var EncryptStr = AESHelper.Encrypt(key, password);
Console.WriteLine($"使用密钥:{key} 为原密码:{password} 加密");
Console.WriteLine($"得到密文:{EncryptStr}");
Console.WriteLine($"使用密钥:{key} 为密文:{EncryptStr} 解密");
var realPwd = AESHelper.Decrypt(key, EncryptStr);
Console.WriteLine($"得到原密码:{realPwd}");
}
}
public static class RSAHelper
{
/// <summary>
/// 使用公钥加密
/// </summary>
/// <returns></returns>
public static string Encrypt(string text, string publicKey)
{
byte[] byteEncrypt;
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.ImportCspBlob(Convert.FromBase64String(publicKey));
C#对称加密和非对称加密(AES和RSA)
最新推荐文章于 2024-07-29 21:56:56 发布