时间:2021-05-20
C#类如下:
复制代码 代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace ConsoleApplication1
{
/// <summary>
/// 加解密类
/// </summary>
public class EncryptHelper
{
//构造一个对称算法
private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();
#region 加密解密函数
/// <summary>
/// 字符串的加密
/// </summary>
/// <param name="Value">要加密的字符串</param>
/// <param name="sKey">密钥,必须32位</param>
/// <param name="sIV">向量,必须是12个字符</param>
/// <returns>加密后的字符串</returns>
public string EncryptString(string Value, string sKey,string sIV)
{
try
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
mCSP.Key = Convert.FromBase64String(sKey);
mCSP.IV = Convert.FromBase64String(sIV);
//指定加密的运算模式
mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
//获取或设置加密算法的填充模式
mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);//创建加密对象
byt = Encoding.UTF8.GetBytes(Value);
ms = new MemoryStream();
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
cs.FlushFinalBlock();
cs.Close();
return Convert.ToBase64String(ms.ToArray());
}
catch (Exception ex)
{
//MessageBox.Show(ex.Message, "出现异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return ("Error in Encrypting " + ex.Message);
}
}
/// <summary>
/// 解密字符串
/// </summary>
/// <param name="Value">加密后的字符串</param>
/// <param name="sKey">密钥,必须32位</param>
/// <param name="sIV">向量,必须是12个字符</param>
/// <returns>解密后的字符串</returns>
public string DecryptString(string Value, string sKey, string sIV)
{
try
{
ICryptoTransform ct;//加密转换运算
MemoryStream ms;//内存流
CryptoStream cs;//数据流连接到数据加密转换的流
byte[] byt;
//将3DES的密钥转换成byte
mCSP.Key = Convert.FromBase64String(sKey);
//将3DES的向量转换成byte
mCSP.IV = Convert.FromBase64String(sIV);
mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);//创建对称解密对象
byt = Convert.FromBase64String(Value);
ms = new MemoryStream();
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
cs.FlushFinalBlock();
cs.Close();
return Encoding.UTF8.GetString(ms.ToArray());
}
catch (Exception ex)
{
//MessageBox.Show(ex.Message, "出现异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return ("Error in Decrypting " + ex.Message);
}
}
#endregion
}
}
调用方法如下:
复制代码 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
EncryptHelper helper = new EncryptHelper();
//加密
string oldValue = "13800138000";
//加密后结果
//密钥,必须32位
string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiB7NLQM5";
//向量,必须是12个字符
string sIV = "andyliu1234=";
//print
string newValue = helper.EncryptString(oldValue,sKey,sIV);
Console.WriteLine("加密后:"+ newValue);
//解密
string desValue = helper.DecryptString(newValue,sKey,sIV);
//
Console.WriteLine("解密后:"+ desValue);
Console.ReadLine();
}
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了python实现的DES加密算法和3DES加密算法。分享给大家供大家参考。具体实现方法如下:###########################
本文实例讲述了java实现的对称加密算法3des定义与用法。分享给大家供大家参考,具体如下:一为什么出现3des1、返回柯克霍夫原则2、存在安全问题二3des(
不安全的加密算法有以下几种: 1、DES(DataEncryptionStandard):数据加密标准,速度较快,适用于加密大量数据的场合。 2、3DES(
本文所述实例是一个实现DES加密算法的程序代码,在C++中,DES加密是比较常用的加密算法了,且应用非常广泛。本CPP类文件可满足你的DES加密需要,代码中附带
复制代码代码如下:importjava.security.Security;importjavax.crypto.Ci