DES算法的加密解密类,由于MD5很难解密,自己不方便,所以用这个了
来源:互联网 发布:网站搜索引擎优化分析 编辑:程序博客网 时间:2024/04/29 22:29
using System;
using System.Text;
using System.IO;
using System.Security.Cryptography;
/// <summary>
/// 字符串加密、解密类,利用DES算法
/// </summary>
public class myEncrypt
{
private static byte[] key = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 };
private static byte[] iv = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 };
/// <summary>
/// 加密
/// </summary>
/// <param name="notEncryptStr">待加密的明文字符串</param>
/// <returns>加密后的字符串</returns>
public static string EncryptString(string notEncryptStr)
{
//初始化加密器生成器
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] byteNotEncrypt = Encoding.UTF8.GetBytes(notEncryptStr);//将字符串转换成字节
MemoryStream encryptMs = new MemoryStream();//创建内存数据流
CryptoStream encryptCs = new CryptoStream(encryptMs, des.CreateEncryptor(key,iv), CryptoStreamMode.Write);//创建加密器
//加密数据
encryptCs.Write(byteNotEncrypt, 0, byteNotEncrypt.Length);//将字节加密并写入内存
encryptCs.FlushFinalBlock();//将缓存中的数据写入内存
encryptMs.Seek(0, SeekOrigin.Begin);//回到内存流开始的位置
//将加密后的数据读取出来
byte[] byteEncrypt = new byte[1024];
int i = encryptMs.Read(byteEncrypt, 0, 1024);
encryptCs.Close();
//将加密后的字节转换为BASE64编码
string decryptStr = Convert.ToBase64String(byteEncrypt, 0, i);
return decryptStr;
}
void test()
{
string str1 = "Hello";
string str2 = myEncrypt.EncryptString(str1);
}
/// <summary>
/// 解密
/// </summary>
/// <param name="decryptStr">待解密的密文字符串</param>
/// <returns>解密后的字符串</returns>
public static string DecryptString(string decryptStr)
{
//初始化解密器生成器
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] byteNotDecrypt = Convert.FromBase64String(decryptStr);//将加密后的BASE64编码的字符串转换成字节
MemoryStream decryptMs = new MemoryStream(byteNotDecrypt);//创建内存数据流
CryptoStream decryptCs = new CryptoStream(decryptMs, des.CreateDecryptor(key, iv), CryptoStreamMode.Read);//创建解密器
//解密数据
byte[] byteDecrypt = new byte[1024];
int i = decryptCs.Read(byteDecrypt, 0, 1024);
decryptCs.Close();
//将解密后的字节转换为BASE64编码
string notEncryptStr = Encoding.UTF8.GetString(byteDecrypt, 0, i);
return notEncryptStr;
}
}
using System.Text;
using System.IO;
using System.Security.Cryptography;
/// <summary>
/// 字符串加密、解密类,利用DES算法
/// </summary>
public class myEncrypt
{
private static byte[] key = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 };
private static byte[] iv = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 };
/// <summary>
/// 加密
/// </summary>
/// <param name="notEncryptStr">待加密的明文字符串</param>
/// <returns>加密后的字符串</returns>
public static string EncryptString(string notEncryptStr)
{
//初始化加密器生成器
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] byteNotEncrypt = Encoding.UTF8.GetBytes(notEncryptStr);//将字符串转换成字节
MemoryStream encryptMs = new MemoryStream();//创建内存数据流
CryptoStream encryptCs = new CryptoStream(encryptMs, des.CreateEncryptor(key,iv), CryptoStreamMode.Write);//创建加密器
//加密数据
encryptCs.Write(byteNotEncrypt, 0, byteNotEncrypt.Length);//将字节加密并写入内存
encryptCs.FlushFinalBlock();//将缓存中的数据写入内存
encryptMs.Seek(0, SeekOrigin.Begin);//回到内存流开始的位置
//将加密后的数据读取出来
byte[] byteEncrypt = new byte[1024];
int i = encryptMs.Read(byteEncrypt, 0, 1024);
encryptCs.Close();
//将加密后的字节转换为BASE64编码
string decryptStr = Convert.ToBase64String(byteEncrypt, 0, i);
return decryptStr;
}
void test()
{
string str1 = "Hello";
string str2 = myEncrypt.EncryptString(str1);
}
/// <summary>
/// 解密
/// </summary>
/// <param name="decryptStr">待解密的密文字符串</param>
/// <returns>解密后的字符串</returns>
public static string DecryptString(string decryptStr)
{
//初始化解密器生成器
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] byteNotDecrypt = Convert.FromBase64String(decryptStr);//将加密后的BASE64编码的字符串转换成字节
MemoryStream decryptMs = new MemoryStream(byteNotDecrypt);//创建内存数据流
CryptoStream decryptCs = new CryptoStream(decryptMs, des.CreateDecryptor(key, iv), CryptoStreamMode.Read);//创建解密器
//解密数据
byte[] byteDecrypt = new byte[1024];
int i = decryptCs.Read(byteDecrypt, 0, 1024);
decryptCs.Close();
//将解密后的字节转换为BASE64编码
string notEncryptStr = Encoding.UTF8.GetString(byteDecrypt, 0, i);
return notEncryptStr;
}
}
- DES算法的加密解密类,由于MD5很难解密,自己不方便,所以用这个了
- 谁能帮我解密这个字串啊des加密的-密码忘了(我已写好解密算法)
- 网上的MD5、DES、RC2、Rijndael加密解密算法
- C#使用MD5加密,DES加密解密的一个类
- 自已封装了一个极其易用的加密解密类,支持DES、三重DES、Rijndael、RC2、MD5、以及非对称加密算法RSA
- 自已封装了一个极其易用的加密解密类,支持DES、三重DES、Rijndael、RC2、MD5、以及非对称加密算法RSA
- 自已封装了一个极其易用的加密解密类,支持DES、三重DES、Rijndael、RC2、MD5、以及非对称加密算法RSA
- DES加密解密 md5加密
- MD5加密、DES加密,DES解密
- java加密解密——MD5算法和DES算法
- C# 加密解密(DES,3DES,MD5,Base64) 类
- CSDN上传相册超级不方便,所以我不喜欢用这个博客了
- java的DES加密、解密和MD5加密
- C# .Net 的加密(DES加密解密,MD5,SHA1)
- DES加密解密算法
- 加密解密---------->DES算法
- DES加密解密算法
- DES加密解密算法
- 用链表实现的一元多项式算法
- 我的Linux PC开发环境
- sql 介绍
- double中保留小数点后指定长度位数
- C# 中的委托和事件
- DES算法的加密解密类,由于MD5很难解密,自己不方便,所以用这个了
- struts 文件上传(主框架、子框架传值等问题)
- m_buff介绍
- struts2的ONGL标签详解--2
- 羡慕研究生啊
- 关于使用EFS加密SQL-Server数据库的心得
- 日语五段动词的连用形2
- Google的未来搜索
- 非常好的BASH脚本编写教程