AES 加密位: 128位,加密模式:CBC, 填充模式:Zeros
Posted wzzkaifa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AES 加密位: 128位,加密模式:CBC, 填充模式:Zeros相关的知识,希望对你有一定的参考价值。
// AES 加密 public byte[] AESEncrypt(string text) { byte[] data = Encoding.Unicode.GetBytes(text); SymmetricAlgorithm aes = Rijndael.Create(); aes.Key = keyArray; aes.IV = keyArray; aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.Zeros; using (MemoryStream ms = new MemoryStream()) { using (CryptoStream cs = new CryptoStream(ms, aes.CreateEncryptor(), CryptoStreamMode.Write)) { cs.Write(data, 0, data.Length); cs.FlushFinalBlock(); byte[] cipherBytes = ms.ToArray(); // 得到加密后的字节数组 cs.Close(); ms.Close(); aes.Clear(); return cipherBytes; } } }
// AES 解密 public string AESDecrypt(byte[] data) { SymmetricAlgorithm aes = Rijndael.Create(); aes.Key = keyArray; aes.IV = keyArray; aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.Zeros; byte[] decryptBytes = new byte[data.Length]; using (MemoryStream ms = new MemoryStream(data)) { using (CryptoStream cs = new CryptoStream(ms, aes.CreateDecryptor(), CryptoStreamMode.Read)) { cs.Read(decryptBytes, 0, decryptBytes.Length); cs.Close(); ms.Close(); } } aes.Clear(); return System.Text.Encoding.Unicode.GetString(decryptBytes).Replace("\0", " "); }
以上是关于AES 加密位: 128位,加密模式:CBC, 填充模式:Zeros的主要内容,如果未能解决你的问题,请参考以下文章
AES在线加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各种加密解密源码
在 Android 中的 iOS AES/CBC/PKCS7Padding 128 位算法中加密的解密字符串的问题
为什么我的C#代码在使用AES CBC 128位加密时不产生与以下网站相同的输出:https://cryptii.com/pipes/aes-encryption