PHP   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Php解密来自C#.NET RIJNDAEL 256的字符串大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
固定它.
$data = base64_decode(str_replace(' ','+',$_GET['data']));@H_489_3@ 
 

无论出于何种原因,php正在将GET变量转换为空格

我试图解密在C#.NET中解密的字符串.

代码的结果各不相同,有几次最后的字符串解密了一些部分,其余部分是随机字符.

大多数时候“解密”字符串只是所有随机字符,我也尝试了一些php函数来删除PKCS7填充,但没有一个修复了这个问题.

我在网站上看了几个类似的问题,但没有一个是有帮助的.

C#

// called as Response.Redirect(url + encryptParams(param));

private String encryptData(String data)
{
    Rijndael aes = Rijndael.Create();
    aes.KeySize = 256;
    aes.blockSize = 256;
    aes.Mode = CipherMode.CBc;
    aes.Padding = PaddingMode.PKCS7;
    aes.Key = Convert.FromBase64String("b0dJN2c6cklVUX1qUGlFfGMweXRKbH5fSEMuXjAgfQo=");

    ICryptoTransform crypto = aes.CreateEncryptor(aes.Key,aes.IV);
    byte[] txt = ASCIIEncoding.UTF8.GetBytes(data);          
    byte[] cipherText = crypto.TransformFinalBlock(txt,txt.Length);

    return "&data=" + Convert.ToBase64String(cipherText) + "&iv=" + Convert.ToBase64String(aes.IV);
}@H_489_3@ 
 

php的

$data = base64_decode($_GET['data']);
   $iv = base64_decode($_GET['iv']);

   echo "<br /><b>IV</b>: " . $_GET['iv'] .
       "<br /><b>Encrypted String</b>: <br /><textarea>".$_GET['data']."</textarea>" .
       "<br /><b>key size:</b> " . mcrypt_get_key_size ( MCRYPT_RIJNDAEL_256,MCRYPT_MODE_CBC) .
       "<br /><b>block size:</b> " . mcrypt_get_BLOCK_SIZE ( MCRYPT_RIJNDAEL_256,MCRYPT_MODE_CBC) .
       "<br /><b>cipher:</b> " . mcrypt_get_cipher_name ( MCRYPT_RIJNDAEL_256 ) .
       "<br /><b>iv size:</b> " .  mcrypt_get_iv_size  ( MCRYPT_RIJNDAEL_256,MCRYPT_MODE_CBC) . "<br />"; 

   echo "Result: " . 
      mcrypt_decrypt
      (
          MCRYPT_RIJNDAEL_256,base64_decode("b0dJN2c6cklVUX1qUGlFfGMweXRKbH5fSEMuXjAgfQo="),$data,MCRYPT_MODE_CBC,$iv
       );@H_489_3@ 
 

php输出:

IV:WzsMlG39tfCGuX2EQM3vq8CoqGA xC0nW jICls8Cno =
key:b0dJN2c6cklVUX1qUGlFfGMweXRKbH5fSEMuXjAgfQo =

加密字符串:oLxa21fxfQGg0EJ5rwMjezMblvcaTq0AInDAsD88wAkNeLqOdon0ukLjz49Hpp36KPTKcTGkj1f7EPYPAAbuADnr3Ff0zpptZkx2d22VRbHrMgj QLF9vDxQRT3er3UAXsAfKKTyW8qeSIgrzACFLX3yoro / bzWic rt7ED7y0jZ7a1Hci3GMz / 4KhwaftarbV QQWStJlSOqdxAdmtRRe84Vi3085S6um51bNrh5QzGRH PcpucfqaTb3junfO9g67j2JUQaM / Tj1EGnv6oX3wATR / LuWyhnhrCH86u10I =

密钥大小:32
块大小:32
密码:Rijndael-256
iv尺寸:32
结果:
/ CI ^ / CGSC(

原始字符串(JSON):
{ “用户”: “JSMITH”,“名字”: “约翰”,“姓氏”: “史密斯”,“手机”: “12223334444.5555”,“电子邮件”: “john.smith@domain.com”,“地址” :“123 Some Street”,“address2”:“apt 456”,“city”:“Some City”,“state”:“LA”,“zip”:“55555”}

解决方法

使用以下代码修复它.
$data = base64_decode(str_replace(' ',php正在将GET变量转换为空格.

大佬总结

以上是大佬教程为你收集整理的Php解密来自C#.NET RIJNDAEL 256的字符串全部内容,希望文章能够帮你解决Php解密来自C#.NET RIJNDAEL 256的字符串所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。