您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在ASP.NET中,可以使用多种方法来实现数据加密和解密。以下是一些常用的方法:
使用.NET内置的加密类:
在.NET框架中,提供了许多加密类,如System.Security.Cryptography
命名空间下的DES
, TripleDES
, RC4
, Rfc2898DeriveBytes
等。以下是一个使用Rfc2898DeriveBytes
进行AES加密和解密的示例:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
public class AesEncryptionHelper
{
private static readonly byte[] Key = Encoding.UTF8.GetBytes("your-secret-key");
private static readonly byte[] IV = Encoding.UTF8.GetBytes("your-initial-vector");
public static string Encrypt(string plainText)
{
using (Aes aes = Aes.Create())
{
aes.Key = Key;
aes.IV = IV;
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter sw = new StreamWriter(cs))
{
sw.Write(plainText);
}
cs.Close();
}
return Convert.ToBase64String(ms.ToArray());
}
}
}
public static string Decrypt(string cipherText)
{
using (Aes aes = Aes.Create())
{
aes.Key = Key;
aes.IV = IV;
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(cipherText)))
{
using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs))
{
return sr.ReadToEnd();
}
}
}
}
}
}
使用ASP.NET Web API中的加密和解密功能:
ASP.NET Web API提供了对数据加密和解密的支持。可以使用System.Web.Http.Filters
命名空间下的IApiControllerActionFilter
接口来实现加密和解密。以下是一个使用Web API进行AES加密和解密的示例:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Web.Http.Filters;
public class AesEncryptionFilter : IActionFilter
{
private static readonly byte[] Key = Encoding.UTF8.GetBytes("your-secret-key");
private static readonly byte[] IV = Encoding.UTF8.GetBytes("your-initial-vector");
public void OnActionExecuting(HttpActionContext actionContext)
{
if (actionContext.Request.Method == HttpMethod.Post)
{
string plainText = actionContext.Request.Content.ReadAsStringAsync().Result;
string cipherText = AesEncryptionHelper.Encrypt(plainText);
actionContext.Request.Content = new StringContent(cipherText);
}
}
public void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
if (actionExecutedContext.Response != null && actionExecutedContext.Response.Content != null)
{
string cipherText = actionExecutedContext.Response.Content.ReadAsStringAsync().Result;
string plainText = AesEncryptionHelper.Decrypt(cipherText);
actionExecutedContext.Response.Content = new StringContent(plainText);
}
}
}
然后,在WebApiConfig.cs
文件中注册该过滤器:
config.Filters.Add(new AesEncryptionFilter());
这样,当客户端向API发送POST请求时,数据将被加密;当API返回响应时,数据将被解密。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。