当前位置: 首页 > 编程语言 > C#

在C#中解密PHP加密字符串

时间:2023-04-10 11:27:57 C#

在C#中解密PHP加密字符串我有一个用PHP加密的字符串,我想用C#解密它。我正在使用下面的教程进行加密,但我无法解密它。任何人都可以发布如何执行此操作的示例吗?http://www.sanity-free.org/131/triple_des_between_php_and_csharp.html希望这会有所帮助:}staticstringDecrypt(stringinput){TripleDEStripleDes=TripleDES.Create();tripleDes.IV=Encoding.ASCII.GetBytes("密码");tripleDes.Key=Encoding.ASCII.GetBytes("passwordDR0wSS@P6660juht");tripleDes.Mode=CipherMode.CBC;tripleDes.Padding=PaddingMode.Zeros;ICryptoTransformcrypto=tripleDes.CreateDecryptor();byte[]decodedInput=解码器(输入);byte[]decryptedBytes=crypto.TransformFinalBlock(decodedInput,0,decodedInput.Length);返回Encoding.ASCII.GetString(decryptedBytes);}staticbyte[]Decoder(stringinput){byte[]bytes=newbyte[input.Length/2];int目标位置=0;for(intsourcePosition=0;sourcePosition如果你没有绑定到tripleDES,只是在php和.net之间传递加密数据,这对你有用。它在VB和C#下。以上就是C#学习教程:C#解密PHP加密字符串全部内容分享。如果对大家有用,需要详细了解C#学习教程,希望大家多加关注---startPHPcodeoriginalstring:$text";echo"encryptedinphp:$etext";echo"decrypted在php中:$dtext";echo"在vb中加密:$from_vb";echo"从vb在php中解密:$vtext";echo"如果你喜欢它,请说谢谢!richarddotvarnoatgmaildotcom";exit;functiondecryptRJ256($key,$iv,$string_to_decrypt){$string_to_decrypt=base64_decode($string_to_decrypt);$rtn=mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$toMCRYPT_MODE_CBC,$iv);$rtn=rtrim($rtn,"4");return($rtn);}functionencryptRJ256($key,$iv,$string_to_encrypt){$rtn=mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$key,$string_to_encrypt,MCRYPT_MODE_CBC,$iv);}$rtn=base64_encode($rtn);return($rtn);}?>BEGINVB.NETCODE(consoleapplication)ImportsSystemImportsSystem.TextImportsSystem.Security.CryptographyImportsSystem.IOModuleModule1'我公然偷了,调整并愉快地使用了以下代码:'LordofPortshttp://www.experts-exchange.com/M_1736399.htmlSubMain()'Shared256bitKeyandIVhereDimsKyAsString="lkirwf897+22#bbtrm8814z5qq=498j5"'32chrsharedasciistring(32*8=256位)DimsIVAsString="741952hheeyy66#cs!9hjv887mxx7@8y"'32chrsharedasciistring(32*8=256bit)DimsTextValAsString="这是我要加密的数据!!!“DimeText作为字符串DimdText作为字符串eText=EncryptRJ256(sKy,sIV,sTextVal)dText=DecryptRJ256(sKy,sIV,eText)Console.WriteLine("key:"&sKy)Console.WriteLine()Console.WriteLine("iv:"&sIV)Console.WriteLine("txt:"&sTextVal)Console.WriteLine("encrypted:"&eText)Console.WriteLine("decrypted:"&dText)Console.WriteLine("如果你喜欢,请说谢谢!richarddotvarnoatgmaildotcom")Console.WriteLine("按任意键退出")Console.ReadKey(True)EndSubPublicFunctionDecryptRJ256(ByValprm_keyAsString,ByValprm_ivAsString,ByValprm_text_to_decryptAsString)DimsEncryptedStringAsString=prm_text_to_decryptDimmyRijndael作为新的RijndaelManagedmyRijndael.Padding=PaddingMode.ZerosmyRijndael.Mode=CipherMode.CBCmyRijndael.KeySize=256myRijndael.BlockSize=256Dimkey()AsByteDim()字节密钥=System.Text.Encoding.ASCII.GetBytes(prm_key)IV=System.Text.Encoding.ASCII.GetBytes(prm_iv)DimdecryptorAsICryptoTransform=myRijndael.CreateDecryptor(key,IV)DimsEncryptedAsByte()=Convert.FromBase64String(sEncryptedString)DimfromEncrypt()AsByte=NewByte(sEncrypted.Length){}DimmsDecrypt作为新的MemoryStream(sEncrypted)DimcsDecryptAsNewCryptoStream(msDecrypt,decryptor,CryptoStreamMode.Read)csDecrypt.Read(fromEncrypt,0,fromEncrypt.Length)返回(System.Text.Encoding.ASCII.GetString(fromEncrypt))EndFunctionPublicFunctionEncryptRJ256(ByValprm_keyAsString,ByValprm_ivAsString,ByValprm_text_to_encryptAsString)DimsToEncryptAsString=prm_text_to_encryptDimmyRijndael作为新RijndaelManagedmyRijndael.Padding=PaddingMode.ZerosmyRijndael.Mode=CipherMode.CBCmyRijndael.KeySize=256myRijndael.BlockSize=256Dimencrypted()AsByteDimtoEncrypt()AsByteDimkey()AsByteDimIV()作为字节密钥=System.Text.Encoding.ASCII.GetBytes(prm_key)IV=System.Text.Encoding.ASCII.GetBytes(prm_iv)()DimcsEncryptAsNewCryptoStream(msEncrypt,encryptor,CryptoStreamMode.Write)toEncrypt=System.Text.Encoding.ASCII.GetBytes(sToEncrypt)csEncrypt.Write(toEncrypt,0,toEncrypt.Length)csEncrypt.FlushFinalBlock()加密=msEncrypt.ToArray()Return(Convert.ToBase64String(encrypted))EndFunctionEndModuleBEGINC#ALTERNATIVE(控制台应用)usingSystem;使用System.IO;使用System.Security.Cryptography;使用系统文本;classProgram{staticvoidMain(string[]args){//Sha红色256位密钥和IV在这里conststringsKy="lkirwf897+22#bbtrm8814z5qq=498j5";//32chrsharedasciistring(32*8=256bit)conststringsIV="741952hheeyy66#cs!9hjv887mxx7@8y";//32chrsharedasciistring(32*8=256bit)varsTextVal="这是我要加密的数据!!!";vareText=EncryptRJ256(sKy,sIV,sTextVal);vardText=DecryptRJ256(sKy,sIV,eText);Console.WriteLine("键:"+sKy);控制台.WriteLine();Console.WriteLine("iv:"+sIV);Console.WriteLine("txt:"+sTextVal);Console.WriteLine("加密:"+eText);Console.WriteLine("解密:"+dText);Console.WriteLine("按任意键退出");控制台.ReadKey(true);}publicstaticstringDecryptRJ256(stringprm_key,stringprm_iv,stringprm_text_to_decrypt){varsEncryptedString=prm_text_to_decrypt;varmyRijndael=newRijndaelManaged(){Padding=PaddingMode.Zeros,Mode=CipherMode.CBC,KeySize=256,BlockSize=256};varkey=编码.ASCII.GetBytes(prm_key);varIV=Encoding.ASCII.GetBytes(prm_iv);vardecryptor=myRijndael.CreateDecryptor(key,IV);varsEncrypted=Convert.FromBase64String(sEncryptedString);varfromEncrypt=newbyte[sEncrypted.Length];varmsDecrypt=newMemoryStream(sEncrypted);varcsDecrypt=newCryptoStream(msDecrypt,decryptor,CryptoStreamMode.Read);csDecrypt.Read(fromEncrypt,0,fromEncrypt.Length);返回(Encoding.ASCII.GetString(fromEncrypt));}publicstaticstringEncryptRJ256(stringprm_key,stringprm_iv,stringprm_text_to_encrypt){varsToEncrypt=prm_text_to_encrypt;varmyRijndael=newRijndaelManaged(){Padding=PaddingMode.Zeros,Mode=CipherMode.CBC,KeySize=256,BlockSize=256};varkey=Encoding.ASCII.GetBytes(prm_key);varIV=Encoding.ASCII.GetBytes(prm_iv);varencryptor=myRijndael.CreateEncryptor(key,IV);varmsEncrypt=newMemoryStream();varcsEncrypt=newCryptoStream(msEncrypt,encryptor,CryptoStreamMode.Write);变种加密=编码.ASCII.GetBytes(sToEncrypt);csEncrypt.Write(toEncrypt,0,toEncrypt.Length);csEncrypt.FlushFinalBlock();varencrypted=msEncrypt.ToArray();返回(Convert.ToBase64String(加密));本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: