1. 程式人生 > >Aes加密解密

Aes加密解密

tran delegate class ext str eap ase hfs tde

加密時:先對string進行utf8解析成數組-->對數組進行加密-->對加密結果用base64解析成string。

那麽揭秘時,對字符串的解析方式是必須要“倒”過來的,就成這樣子了:

解密時:先對string進行base64解析成數組-->對數組進行解密-->對解密結果用utf8解析成string

using System;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApp14
{
    public
delegate void GreetDelegate(string name); class Program { private static void Main(string[] args) { string s = EncodeStr("Good"); Console.WriteLine(s); string ss = "hFsfyUinz3jzjulh0y7HWw=="; Console.WriteLine(DecodeStr(ss)); Console.ReadKey(); }
//加密和解密的密鑰必須相等。 public static string EncodeStr(string ss) { string s = string.Empty; //設置密鑰 byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012"); //加密時用utf8,當解密時要反過來 byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(ss);
//建立算法實例 RijndaelManaged r = new RijndaelManaged(); //設置屬性 r.Key = keyArray; r.Mode = CipherMode.ECB; r.Padding = PaddingMode.PKCS7; //制定加密或者解密方式 ICryptoTransform ic = r.CreateEncryptor(); byte[] bb= ic.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); //以base64進行加密輸出,當解密時要先用base64進行解析 s = Convert.ToBase64String(bb); return s; } public static string DecodeStr(string ss) { string s = string.Empty; //設置密鑰 byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012"); byte[] toEncryptArray = Convert.FromBase64String(ss); //建立算法實例 RijndaelManaged r = new RijndaelManaged(); //設置屬性 r.Key = keyArray; r.Mode = CipherMode.ECB; r.Padding = PaddingMode.PKCS7; //制定加密或者解密方式 ICryptoTransform ic = r.CreateDecryptor(); byte[] bb = ic.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); s = UTF8Encoding.UTF8.GetString(bb); return s; } } }

Aes加密解密