C#实现的AES加密解密完整实例
本文实例讲述了C#实现的AES加密解密。分享给大家供大家参考,具体如下:
/****************************************************************** *创建人:HTL *说明:C#AES加密解密 *******************************************************************/ usingSystem; usingSystem.Security.Cryptography; usingSystem.Text; usingSystem.IO; publicclassTest { publicstaticvoidMain() { //密码 stringpassword="1234567890123456"; //加密初始化向量 stringiv=""; stringmessage=AESEncrypt("abcdefghigklmnopqrstuvwxyz0123456789",password,iv); Console.WriteLine(message); message=AESDecrypt("8Z3dZzqn05FmiuBLowExK0CAbs4TY2GorC2dDPVlsn/tP+VuJGePqIMv1uSaVErr",password,iv); Console.WriteLine(message); } ///<summary> ///AES加密 ///</summary> ///<paramname="text">加密字符</param> ///<paramname="password">加密的密码</param> ///<paramname="iv">密钥</param> ///<returns></returns> publicstaticstringAESEncrypt(stringtext,stringpassword,stringiv) { RijndaelManagedrijndaelCipher=newRijndaelManaged(); rijndaelCipher.Mode=CipherMode.CBC; rijndaelCipher.Padding=PaddingMode.PKCS7; rijndaelCipher.KeySize=128; rijndaelCipher.BlockSize=128; byte[]pwdBytes=System.Text.Encoding.UTF8.GetBytes(password); byte[]keyBytes=newbyte[16]; intlen=pwdBytes.Length; if(len>keyBytes.Length)len=keyBytes.Length; System.Array.Copy(pwdBytes,keyBytes,len); rijndaelCipher.Key=keyBytes; byte[]ivBytes=System.Text.Encoding.UTF8.GetBytes(iv); rijndaelCipher.IV=newbyte[16]; ICryptoTransformtransform=rijndaelCipher.CreateEncryptor(); byte[]plainText=Encoding.UTF8.GetBytes(text); byte[]cipherBytes=transform.TransformFinalBlock(plainText,0,plainText.Length); returnConvert.ToBase64String(cipherBytes); } ///<summary> ///AES解密 ///</summary> ///<paramname="text"></param> ///<paramname="password"></param> ///<paramname="iv"></param> ///<returns></returns> publicstaticstringAESDecrypt(stringtext,stringpassword,stringiv) { RijndaelManagedrijndaelCipher=newRijndaelManaged(); rijndaelCipher.Mode=CipherMode.CBC; rijndaelCipher.Padding=PaddingMode.PKCS7; rijndaelCipher.KeySize=128; rijndaelCipher.BlockSize=128; byte[]encryptedData=Convert.FromBase64String(text); byte[]pwdBytes=System.Text.Encoding.UTF8.GetBytes(password); byte[]keyBytes=newbyte[16]; intlen=pwdBytes.Length; if(len>keyBytes.Length)len=keyBytes.Length; System.Array.Copy(pwdBytes,keyBytes,len); rijndaelCipher.Key=keyBytes; byte[]ivBytes=System.Text.Encoding.UTF8.GetBytes(iv); rijndaelCipher.IV=ivBytes; ICryptoTransformtransform=rijndaelCipher.CreateDecryptor(); byte[]plainText=transform.TransformFinalBlock(encryptedData,0,encryptedData.Length); returnEncoding.UTF8.GetString(plainText); } }
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
密码安全性在线检测:
tools.jb51.net/password/my_password_safe
高强度密码生成器:
tools.jb51.net/password/CreateStrongPassword
MD5在线加密工具:
tools.jb51.net/password/CreateMD5Password
迅雷、快车、旋风URL加密/解密工具:
tools.jb51.net/password/urlrethunder