/csol-logintool/PwcTool/MyDes.cs
https://github.com/bulue/CSOL--- · C# · 68 lines · 53 code · 2 blank · 13 comment · 0 complexity · c45af74fbaa89212364d1adafb4b3573 MD5 · raw file
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Security.Cryptography;
- using System.IO;
-
- namespace PwcTool
- {
- public class MyDes
- {
- /// <summary>
- /// DES加密方法
- /// </summary>
- /// <param name="strPlain">明文</param>
- /// <param name="strDESKey">密钥</param>
- /// <param name="strDESIV">向量</param>
- /// <returns>密文</returns>
- public static string Encode(string source, string _DESKey)
- {
- StringBuilder sb = new StringBuilder();
- using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
- {
- byte[] key = ASCIIEncoding.ASCII.GetBytes(_DESKey);
- byte[] iv = ASCIIEncoding.ASCII.GetBytes(_DESKey);
- byte[] dataByteArray = Encoding.UTF8.GetBytes(source);
- des.Mode = System.Security.Cryptography.CipherMode.CBC;
- des.Key = key;
- des.IV = iv;
- string encrypt = "";
- using (MemoryStream ms = new MemoryStream())
- using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
- {
- cs.Write(dataByteArray, 0, dataByteArray.Length);
- cs.FlushFinalBlock();
- encrypt = Convert.ToBase64String(ms.ToArray());
- }
- return encrypt;
- }
- }
-
- /// <summary>
- /// 进行DES解密。
- /// </summary>
- /// <param name="pToDecrypt">要解密的base64串</param>
- /// <param name="sKey">密钥,且必须为8位。</param>
- /// <returns>已解密的字符串。</returns>
- public static string Decode(string source, string sKey)
- {
- byte[] inputByteArray = System.Convert.FromBase64String(source);//Encoding.UTF8.GetBytes(source);
- using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
- {
- des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
- des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
- System.IO.MemoryStream ms = new System.IO.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;
- }
- }
- }
- }