1. 程式人生 > >C# PHP QT 3Des 加密解密

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);         }