学堂 学堂 学堂公众号手机端

在C#中实现AES加密可以通过使用AesManaged类来实现。下面是一个简单的示例代码

lewis 1年前 (2024-03-24) 阅读数 4 #技术

在C#中实现AES加密可以通过使用AesManaged类来实现。下面是一个简单的示例代码:

usingSystem; usingSystem.IO; usingSystem.Security.Cryptography; usingSystem.Text; publicclassAesEncryption { publicstaticstringEncrypt(stringplainText,stringkey,stringiv) { byte[]keyBytes=Encoding.UTF8.GetBytes(key); byte[]ivBytes=Encoding.UTF8.GetBytes(iv); byte[]encryptedBytes; using(AesManagedaes=newAesManaged()) { aes.Key=keyBytes; aes.IV=ivBytes; ICryptoTransformencryptor=aes.CreateEncryptor(aes.Key,aes.IV); using(MemoryStreamms=newMemoryStream()) { using(CryptoStreamcs=newCryptoStream(ms,encryptor,CryptoStreamMode.Write)) { using(StreamWritersw=newStreamWriter(cs)) { sw.Write(plainText); } encryptedBytes=ms.ToArray(); } } } returnConvert.ToBase64String(encryptedBytes); } publicstaticstringDecrypt(stringencryptedText,stringkey,stringiv) { byte[]keyBytes=Encoding.UTF8.GetBytes(key); byte[]ivBytes=Encoding.UTF8.GetBytes(iv); byte[]encryptedBytes=Convert.FromBase64String(encryptedText); stringdecryptedText; using(AesManagedaes=newAesManaged()) { aes.Key=keyBytes; aes.IV=ivBytes; ICryptoTransformdecryptor=aes.CreateDecryptor(aes.Key,aes.IV); using(MemoryStreamms=newMemoryStream(encryptedBytes)) { using(CryptoStreamcs=newCryptoStream(ms,decryptor,CryptoStreamMode.Read)) { using(StreamReadersr=newStreamReader(cs)) { decryptedText=sr.ReadToEnd(); } } } } returndecryptedText; } }

使用以上代码,你可以通过调用AesEncryption.Encrypt方法进行加密,调用AesEncryption.Decrypt方法进行解密。请注意,你需要提供一个密钥(key)和一个初始化向量(iv),这两个值必须是相同的才能正确解密。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门