C# PHP QT 3Des 加密解密
//加密解碼
不同的平臺和模式。
調整CipherMode
ECB:模式不使用iv
CBC:使用iv
填補方案:(TransformFinalBlock解密程式出錯,很大可能就是填充方案不一致)
System.Security.Cryptography.PaddingMode.Zeros(QT對接使用多)
System.Security.Cryptography.PaddingMode.PKCS7(PHP對接使用多)
(不迷信就幾個模式自己試一下就可以)
public static byte[] Encrypt3DES(byte[] intype, string a_strKey) { DESCryptoServiceProvider DES = new DESCryptoServiceProvider(); DES.Key = Encoding.ASCII.GetBytes(a_strKey); DES.Mode = CipherMode.ECB; DES.Padding = System.Security.Cryptography.PaddingMode.Zeros; ICryptoTransform DESEncrypt = DES.CreateEncryptor(); return DESEncrypt.TransformFinalBlock(intype, 0, intype.Length); }
public static byte[] Decrypt3DES(byte[] intype, string a_strKey) { DESCryptoServiceProvider DES = new DESCryptoServiceProvider(); DES.Key = Encoding.ASCII.GetBytes(a_strKey); DES.Mode = CipherMode.ECB; DES.Padding = System.Security.Cryptography.PaddingMode.Zeros; ICryptoTransform DESDecrypt = DES.CreateDecryptor(); return DESDecrypt.TransformFinalBlock(intype, 0, intype.Length); }