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;
}
}
分享到:
相关推荐
使用DES算法加密、解密文本、文件,十六进制显示。 提供源代码。 缺点:没有处理文件末尾。
DES算法加密解密1M文件,并计算加密和解密时间
DES 算法 加密解密程序 DES 算法 加密解密程序
DES加密解密MD5加密算法以及winform示例
DES加密解密算法的C语言实现,只要调用函数,即可实现数据的加密解密,我已经在DSP上实现。
根据DES加密标准,用C++设计编写符合DES算法思想的加、解密程序,实现对字符串和数组的加密和解密。
VB实现DES加密解密算法已测试通过如有更新另行发布
C# DES算法加密解密示例
sun java 3DES加密解密算法
DES加密算法实现的C++类DES加密算法实现的C++类
DES算法加解密文件 C语言实现
DES加密解密算法 C语言源代码,STM32 51单片机可用。提高产品的安全性,RAM占用小。 /* DES加密,binput:明文,boutput:密文, bkey:密钥 */
JAVA 3DES算法加密解密 SecretKey deskey = new SecretKeySpec(keybyte, Algorithm); //加密 Cipher c1 = Cipher.getInstance(Algorithm); c1.init(Cipher.ENCRYPT_MODE, deskey); return c1.doFinal(src)...
加密为直接输入十六进制的(消息,密钥,1);解密为(密文,密钥,2);Index=1为加密,不为1为解密
DES加密与解密算法实现源代码,是我们上课时做的作业
对文件加密解密,有详细的文件说明,很经典
我自己用C语言写的一个DES算法,实现了DES的加密解密功能。可手动输入明文及密钥,加密后对密文进行解密,正确还原为明文。开发环境为VC6.0
DES算法加密解密C++源码及程序(完整的工程文件),内容绝对完整,VC++6.0完美打开,控制台应用程序,而且可以计算加密解密时间的哦
ASP.NET的MD5和DES加密和解密算法 非常好的资源 欢迎大家参考
DES对于文件的加密解密,采用CBC-DES模式编写。可联系maibox_krj@163.com获取。