一、DES是一种数据加密标准,属于对称的加密算法体系。
下边是自己写的一个加密类:
<span style="font-size:10px;">using System;
using System.Text;
using System.IO;
using System.Security.Cryptography;
namespace WpfApplication12
{
/// <summary>
/// DES密码加密与解密
/// </summary>
class DES
{
/// <summary>
/// DES加密
/// </summary>
/// <param name="password">密码明文</param>
/// <returns>密码密文</returns>
public string Encrypt(string password)
{
try
{
DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
using (MemoryStream memoryStream = new MemoryStream())
{
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateEncryptor(Encoding.UTF8.GetBytes("ascdefgh"), Encoding.UTF8.GetBytes("ascdefgh")), CryptoStreamMode.Write)) //加密器对象
{
cryptoStream.Write(Encoding.UTF8.GetBytes(password), 0, Encoding.UTF8.GetBytes(password).Length);
cryptoStream.FlushFinalBlock();
}
return Convert.ToBase64String(memoryStream.ToArray());
}
}
catch { return ""; }
}
/// <summary>
/// DES解密
/// </summary>
/// <param name="password">密码密文</param>
/// <returns>密码明文</returns>
public string Decrypt(string password)
{
DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
using (MemoryStream memoryStream = new MemoryStream())
{
try
{
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateDecryptor(Encoding.UTF8.GetBytes("ascdefgh"), Encoding.UTF8.GetBytes("ascdefgh")), CryptoStreamMode.Write))
{
cryptoStream.Write(Convert.FromBase64String(password), 0, Convert.FromBase64String(password).Length);
cryptoStream.FlushFinalBlock();
}
return Encoding.UTF8.GetString(memoryStream.ToArray());
}
catch
{
return "";
}
}
}
}
}</span><span style="font-size: 18px;">
</span>解释:des.CreateDecryptor(btKey, btIV)中的两个参数为:(用于对称算法的密钥,用于对称算法的初始化向量);
因为是对称算法:所以加密和解密中两个参数必须相同。
本文介绍了C#中DES加密算法的使用,这是一种对称加密标准。文章提供了一个自编写的加密类,并强调在加密和解密过程中,密钥和初始化向量必须保持一致。
2万+

被折叠的 条评论
为什么被折叠?



