123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Security.Cryptography;
- using System.Text;
- using System.Threading.Tasks;
- namespace UploadClient
- {
- public class Cryptography
- {
- #region 可逆加密
- /// <summary>
- /// 加密——秘钥必须8位
- /// </summary>
- /// <param name="data"></param>
- /// <param name="KEYStr"></param>
- /// <param name="IVStr"></param>
- /// <returns></returns>
- public static string Encode(string data, string KEYStr = "qnet9ew!", string IVStr = "56431212")
- {
- byte[] byKey = Encoding.ASCII.GetBytes(KEYStr);
- byte[] byIV = Encoding.ASCII.GetBytes(IVStr);
- using (DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider())
- {
- int i = cryptoProvider.KeySize;
- using (MemoryStream ms = new MemoryStream())
- {
- using (CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write))
- {
- using (StreamWriter sw = new StreamWriter(cst))
- {
- sw.Write(data);
- sw.Flush();
- cst.FlushFinalBlock();
- sw.Flush();
- return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
- }
- }
- }
- }
- }
- /// <summary>
- /// 解密——秘钥必须8位
- /// </summary>
- /// <param name="data"></param>
- /// <param name="KEYStr"></param>
- /// <param name="IVStr"></param>
- /// <returns></returns>
- public static string Decode(string data, string KEYStr = "qnet9ew!", string IVStr = "56431212")
- {
- byte[] byKey = Encoding.ASCII.GetBytes(KEYStr);
- byte[] byIV = Encoding.ASCII.GetBytes(IVStr);
- byte[] byEnc;
- try
- {
- byEnc = Convert.FromBase64String(data);
- }
- catch
- {
- return null;
- }
- using (DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider())
- {
- using (MemoryStream ms = new MemoryStream(byEnc))
- {
- using (CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read))
- {
- using (StreamReader sr = new StreamReader(cst))
- {
- return sr.ReadToEnd();
- }
- }
- }
- }
- }
- #endregion
- }
- }
|