Function int b64_size(ulong size,ulong flag) Library “des64.dll”
Function int b64_des(ref String in,ref string out,string key,ulong size,ulong flag)Library “des64.dll”
测试地址:http://tool.chacuo.net/cryptdes
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace _20170802_jiami
{
public class EncryptString_2
{
/// <summary>
/// byte流编码
/// </summary>
/// <param name="inputByteArray"></param>
/// <param name="Key"></param>
/// <param name="IsEncrypt"></param>
/// <returns></returns>
public static MemoryStream getMemoryStream(byte[] inputByteArray, string Key,bool IsEncrypt=true)
{
using (var des = new DESCryptoServiceProvider())
{
des.Mode = CipherMode.ECB;
des.Padding = PaddingMode.Zeros;
des.Key = Encoding.UTF8.GetBytes(Key.PadRight(8).Substring(0, 8));
var ms = new MemoryStream();
using (var cs = new CryptoStream(ms, IsEncrypt ? des.CreateEncryptor():des.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
cs.Close();
}
return ms;
}
}
/// <summary>
/// 加密
/// </summary>
/// <param name="encryptString"></param>
/// <param name="Key"></param>
/// <returns></returns>
public static string Encrypt(string encryptString, string Key)
{
var inputByteArray = Encoding.UTF8.GetBytes(encryptString);
var mStream = getMemoryStream(inputByteArray, Key);
var str = Convert.ToBase64String(mStream.ToArray());
mStream.Close();
return str;
}
// <summary>
// 进行DES解密。
// </summary>
// <param name="pToDecrypt">要解密的以Base64</param>
// <param name="sKey">密钥,且必须为8位。</param>
// <returns>已解密的字符串。</returns>
public static string Decrypt(string pToDecrypt, string Key)
{
var inputByteArray = Convert.FromBase64String(pToDecrypt);
var mStream = getMemoryStream(inputByteArray, Key,false);
var str = Encoding.UTF8.GetString(mStream.ToArray());
mStream.Close();
return str;
}
}
}
调用方法
string s = EncryptString_2.Encrypt("#buynow.com.cn#010011234567890", "buynow");