C#3DES加密解密,JAVA、PHP可用
using System; using System.Security.Cryptography; using System.Text; namespace TT.Utilities.Encrypt { public class DES3 { /// <summary> /// utf-8编码 /// 加密模式ECB,填充类型PKCS7 /// </summary> /// <param name="str_content"></param> /// <param name="str_keys">24位key</param> /// <returns></returns> public static string DES3_Encrypt(string str_content, string str_keys) #region { Encoding encoding = Encoding.UTF8; byte[] content = encoding.GetBytes(str_content); byte[] keys = encoding.GetBytes(str_keys); TripleDESCryptoServiceProvider tdsc = new TripleDESCryptoServiceProvider(); //指定密匙长度,默认为192位 tdsc.KeySize = 128; //使用指定的key和IV(加密向量) tdsc.Key = keys; //tdsc.IV = IV; //加密模式,偏移 tdsc.Mode = CipherMode.ECB; tdsc.Padding = PaddingMode.PKCS7; //进行加密转换运算 ICryptoTransform ct = tdsc.CreateEncryptor(); //8很关键,加密结果是8字节数组 byte[] results = ct.TransformFinalBlock(content, 0, content.Length); string base64String = Convert.ToBase64String(results); return base64String; } #endregion /// <summary> /// utf-8编码 /// 加密模式ECB,填充类型PKCS7 /// </summary> /// <param name="base64_content"></param> /// <param name="str_keys">24位key</param> /// <returns></returns> public static string DES3_Decrypt(string base64_content, string str_keys) #region { Encoding encoding = Encoding.UTF8; byte[] content = Convert.FromBase64String(base64_content); byte[] keys = encoding.GetBytes(str_keys); TripleDESCryptoServiceProvider tdsc = new TripleDESCryptoServiceProvider(); //指定密匙长度,默认为192位 tdsc.KeySize = 128; //使用指定的key和IV(加密向量) tdsc.Key = keys; //tdsc.IV = IV; //加密模式,偏移 tdsc.Mode = CipherMode.ECB; tdsc.Padding = PaddingMode.PKCS7; //进行加密转换运算 ICryptoTransform ct = tdsc.CreateDecryptor(); //8很关键,加密结果是8字节数组 byte[] results = ct.TransformFinalBlock(content, 0, content.Length); string oriString = encoding.GetString(results); return oriString; } #endregion } }