[英]How to decrypt a .net encrypted string in php
我正在c#中加密字符串,并将其发送到这样的php页面。
sfplr.Attributes.Add("href", "http://sml.com.pk/a/sfpl/reports.php?id=" + Convert.ToBase64String(Encoding.Unicode.GetBytes(emailid)));
从此代码生成的网址是这样的
http://sml.com.pk/a/sfpl/reports.php?id=bQBhAGwAaQBrAC4AYQBkAGUAZQBsAEAAcwBoAGEAawBhAHIAZwBhAG4AagAuAGMAbwBtAC4AcABrAA==
现在,我想再次解密此bQBhAGwAaQBrAC4AYQBkAGUAZQBsAEAAcwBoAGEAawBhAHIAZwBhAG4AagAuAGMAbwBtAC4AcABrAA==
在php中显示在php页面中。请有人帮助我执行此操作
尝试使用base64_decode
函数
参考http://php.net/manual/zh/function.base64-decode.php
在您的情况下,它将是:
<?php
echo base64_decode($_GET['id']);
?>
$email = base64_decode("bQBhAGwAaQBrAC4AYQBkAGUAZQBsAEAAcwBoAGEAawBhAHIAZwBhAG4AagAuAGMAbwBtAC4AcABrAA==");
echo $email; //****** You will get email here... */
请参阅.Net中的“ convert.tobase64string”是否等于PHP中的“ base64_encode”?
使用base64_decode
函数将返回您最初传递给convert.toBase64String
的字节。
之后,您将必须通过以下方式撤退它们:
<?php $emailBytes = base64_decode($_GET['id']); ?>
如果已正确序列化,则将返回通过使用Convert.toBase64String在C#中创建的数组,请参见Encoding.getBytes 。
意思是,如果数组按照您的预期通过(我对此表示怀疑)
$msg = "";
foreach ($emailBytes as $character) {
$msg .= (char) $character;
}
我怀疑您甚至需要Encoding.getBytes,也可以仅将字符串作为参数。
在C#中使用
Convert.ToBase64String(emailid);
然后,您在php中要做的就是以我首先提到的方式进行检索,这将为您提供原始传递的String。
而且,正如多次指出的那样,这是您正在执行的加密,只是确保可以以不会发生冲突的方式将其传递到URL中。
如果确实要加密,请使用C#端的库,对消息进行编码,对base64进行编码。 然后在PHP方面,您必须做相反的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.