永发信息网

用PHP的方法解DES加密

答案:2  悬赏:70  手机版
解决时间 2021-12-28 11:40
原代码是C#的,现在需要用PHP的方法解开,请高手们帮帮忙。
下面代码中的key = LY870513
加密后的内容是 j45Rrzxm0jD62U1w798yBg==
public static string DecryptString(string strText)
{
byte[] rgbKey = null;
byte[] rgbIV = new byte[] { 0x12, 0x34, 0x56, 120, 0x90, 0xab, 0xcd, 0xef };
byte[] buffer = new byte[strText.Length];
try
{
rgbKey = Encoding.UTF8.GetBytes(key);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
buffer = Convert.FromBase64String(strText);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
Encoding encoding = new UTF8Encoding();
return encoding.GetString(stream.ToArray());
}
catch (Exception exception)
{
return ("error:" + exception.Message + "\r");
}
}
最佳答案
$key ='LY870513';
$ctext = 'j45Rrzxm0jD62U1w798yBg==';
$ptext = mcrypt_decrypt ( MCRYPT_DES, $key , base64_decode($ctext), MCRYPT_MODE_CBC, "\x12\x34\x56\120\x90\xab\xcd\xef");
//echo iconv('UTF-8','GBK',$ptext); //GBK环境使用,UTF8环境多余不用
echo $ptext; //UTF8环境用20219241337由于不清楚原代码的块链接模式,暂时用的CBC,对于短数据可解出。
全部回答
des是一种标准的数据加密算法,关于这个算法的详细介绍可以参考wiki和百度百科:   php中有一个扩展可以支持des的加密算法,是:extension=php_mcrypt.dll   在配置文件中将这个扩展打开还不能够在windows环境下使用   需要将php文件夹下的 libmcrypt.dll 拷贝到系统的 system32 目录下,这是通过phpinfo可以查看到mcrypt表示这个模块可以正常试用了。   下面是php中使用des加密解密的一个例子:   //$input - stuff to decrypt   //$key - the secret key to use   function do_mencrypt($input, $key)   {   $input = str_replace(""n", "", $input);   $input = str_replace(""t", "", $input);   $input = str_replace(""r", "", $input);   $key = substr(md5($key), 0, 24);   $td = mcrypt_module_open('tripledes', '', 'ecb', '');   $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), mcrypt_rand);   mcrypt_generic_init($td, $key, $iv);   $encrypted_data = mcrypt_generic($td, $input);   mcrypt_generic_deinit($td);   mcrypt_module_close($td);   return trim(chop(base64_encode($encrypted_data)));   }   //$input - stuff to decrypt   //$key - the secret key to use   function do_mdecrypt($input, $key)   {   $input = str_replace(""n", "", $input);   $input = str_replace(""t", "", $input);   $input = str_replace(""r", "", $input);   $input = trim(chop(base64_decode($input)));   $td = mcrypt_module_open('tripledes', '', 'ecb', '');   $key = substr(md5($key), 0, 24);   $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), mcrypt_rand);   mcrypt_generic_init($td, $key, $iv);   $decrypted_data = mdecrypt_generic($td, $input);   mcrypt_generic_deinit($td);   mcrypt_module_close($td);   return trim(chop($decrypted_data));   }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
楼房出售广告怎么写
现在怎么都去韩国打工
单选题新中国成立之前,民族地区几乎没有现代
南京市栖霞区检察院反贪局办公地址在什么地方
怎样把别人微店里的商品复制到自己的微店
(1)填写下表:元素名称______镁银______锰_
不能忘记事情的名言
浦口区人民检察院举报中心办公位置在哪啊?好
在1-400的整数中,被3、5、7除都余2的数共有
新买了钢笔百乐78g,感觉买粗了一号,可不可
下列各项的改句和原句相比,意思发生了明显变
全幅相机是什么意思
江宁区人民检察院反渎职侵权局办公位置在哪啊
追赶风筝的孩子怎么分段
单选题自由落体运动的在任何两个相邻1s内的位
推荐资讯
元月用英语怎么说
单选题人类在海洋中的捕鱼量90%,以上来自:
求电影《超级整蛊霸王》所有演员的名单
关于编程需要的数学
明天打台风吗?
小丑对蝙蝠侠是怎样的情感?
以水蕴草为材料进行下图所示的实验,并定时记
2008年5月12日,我国汶川发生大地震.全国人
螺丝松动怎么办
vivox9和小米6哪个好的最新相关信息
同花顺有没有恒指德指期货阿
女生答 我一个朋友高跟鞋鞋跟不小心踩死只毛
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?