C# 对称加解密

快来打我* 2022-08-08 00:58 283阅读 0赞

///


/// DES加密调用
///

/// 需要加密的字符串
/// 加密结果
public static string DESEncrypt(string inputStr)
{
return Encrypt(inputStr,”Futpower”);
}

///


/// DES解密调用
///

/// 需要解密的字符串
/// 解密结果
public static string DESDecrypt(string inputStr)
{
return Decrypt(inputStr, “Futpower”);
}

///


/// 进行DES加密。
///

/// 要加密的字符串。
/// 密钥,且必须为8位。
/// 以Base64格式返回的加密字符串。
public static string Encrypt(string pToEncrypt, string sKey)
{
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();

using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
cs.Close();
}
string str = Convert.ToBase64String(ms.ToArray());
ms.Close();
return str;
}
}

///


/// 进行DES解密。
///

/// 要解密的以Base64
/// 密钥,且必须为8位。
/// 已解密的字符串。
public static string Decrypt(string pToDecrypt, string sKey)
{
byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
cs.Close();
}
string str = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return str;
}
}

发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JAVA-对称加密AES解密示例

    这几天在解决报文中敏感字段传输问题时,由于对AES对称加密不熟悉,遇到了不少问题。特此记录,多的不说,直接上代码!代码中做了向量的异或(generateIv),如无特殊需要,可

    相关 RSA非对称密钥解密使用示例

    一、简介:   RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。这个算法经受住了