问题描述
我有一个用 PHP 加密的字符串,我想用 C# 解密.我使用下面的教程进行加密,但在解密时遇到问题.任何人都可以发布有关如何执行此操作的示例吗?
I have a string encrypted in PHP that I would like to decrypt in C#. I used the tutorial below to do the encryption, but am having problems decrypting. Can anyone post an example on how to do this?
http://www.sanity-free.org/131/triple_des_between_php_and_csharp.html
推荐答案
希望对您有所帮助:
class Program { static void Main(string[] args) { Console.WriteLine(Decrypt("47794945c0230c3d")); } static string Decrypt(string input) { TripleDES tripleDes = TripleDES.Create(); tripleDes.IV = Encoding.ASCII.GetBytes("password"); tripleDes.Key = Encoding.ASCII.GetBytes("passwordDR0wSS@P6660juht"); tripleDes.Mode = CipherMode.CBC; tripleDes.Padding = PaddingMode.Zeros; ICryptoTransform crypto = tripleDes.CreateDecryptor(); byte[] decodedInput = Decoder(input); byte[] decryptedBytes = crypto.TransformFinalBlock(decodedInput, 0, decodedInput.Length); return Encoding.ASCII.GetString(decryptedBytes); } static byte[] Decoder(string input) { byte[] bytes = new byte[input.Length/2]; int targetPosition = 0; for( int sourcePosition=0; sourcePosition<input.Length; sourcePosition+=2 ) { string hexCode = input.Substring(sourcePosition, 2); bytes[targetPosition++] = Byte.Parse(hexCode, NumberStyles.AllowHexSpecifier); } return bytes; } }