?? encrypt.cs
字號:
using System;
using System.Text;
using System.IO;
using System.Security.Cryptography;
namespace HRManager.CommonComponent
{
/// <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);//將字符串轉(zhuǎn)換成字節(jié)
MemoryStream encryptMs = new MemoryStream();//創(chuàng)建內(nèi)存數(shù)據(jù)流
CryptoStream encryptCs = new CryptoStream(encryptMs, des.CreateEncryptor(key,iv), CryptoStreamMode.Write);//創(chuàng)建加密器
//加密數(shù)據(jù)
encryptCs.Write(byteNotEncrypt, 0, byteNotEncrypt.Length);//將字節(jié)加密并寫入內(nèi)存
encryptCs.FlushFinalBlock();//將緩存中的數(shù)據(jù)寫入內(nèi)存
encryptMs.Seek(0, SeekOrigin.Begin);//回到內(nèi)存流開始的位置
//將加密后的數(shù)據(jù)讀取出來
byte[] byteEncrypt = new byte[1024];
int i = encryptMs.Read(byteEncrypt, 0, 1024);
encryptCs.Close();
//將加密后的字節(jié)轉(zhuǎn)換為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編碼的字符串轉(zhuǎn)換成字節(jié)
MemoryStream decryptMs = new MemoryStream(byteNotDecrypt);//創(chuàng)建內(nèi)存數(shù)據(jù)流
CryptoStream decryptCs = new CryptoStream(decryptMs, des.CreateDecryptor(key, iv), CryptoStreamMode.Read);//創(chuàng)建解密器
//解密數(shù)據(jù)
byte[] byteDecrypt = new byte[1024];
int i = decryptCs.Read(byteDecrypt, 0, 1024);
decryptCs.Close();
//將解密后的字節(jié)轉(zhuǎn)換為BASE64編碼
string notEncryptStr = Encoding.UTF8.GetString(byteDecrypt, 0, i);
return notEncryptStr;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -