php代码转译c#

xiaohaogaoshou 2015-04-29 04:15:05
没学过php 现在有一批php加密的数据要转译 php的加密解密如下 请帮忙翻译下 或者告知每一行代码的意义
function mymd5($string,$action="EN")
{ //字符串加密和解密
global $webdb,$onlineip;//$webdb系统的一些配置信息,$onlineip 客户端ip 这个函数好像没有用到
$secret_string = $webdb[mymd5].'5*j,.^&;?.%#@!'; //绝密字符串,可以任意设定
//$webdb[mymd5] 可以自己设置一个字符串
if($string=="") return "";
if($action=="EN") $md5code=substr(md5($string),8,10); //动作是加密,则取明文的MD5码的 8到10位字符
else//动作是解密(DE)
{
$md5code=substr($string,-10);//取$string后10个字符
$string=substr($string,0,strlen($string)-10);//把$string倒数十个字符去掉
}

$key = md5($md5code.$secret_string);//密匙
$string = ($action=="EN"?$string:base64_decode($string));//如果动作是解密则将要解密的字符串进行MIME base64解码

$len = strlen($key);
$code = "";
for($i=0; $i<strlen($string); $i++)
{
$k = $i%$len;
$code .= $string[$i]^$key[$k];
}
$code = ($action == "DE" ? (substr(md5($code),8,10)==$md5code?$code:NULL) : base64_encode($code)."$md5code");
return $code;
}
//mymd5($ccc,"EN") 加密 mymd5($ccc,"DE") 解密

...全文
169 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjazzy 2015-04-30
  • 打赏
  • 举报
回复
传参好麻烦,我来学习一下
xuzuning 2015-04-30
  • 打赏
  • 举报
回复
        static string mymd5(string str)
        {
            string secret_string = "5*j,.^&;?.%#@!";
            string md5code = smd5(str).Substring(8, 10);
            string key = smd5(md5code + secret_string);

            var UTF8 = new System.Text.UTF8Encoding();
            Byte[] bstr = UTF8.GetBytes(str); //将传入串转成字节数组
            Byte[] bkey = UTF8.GetBytes(key); //将键转成字节数组
            for (int i = 0, k = 0; i < bstr.Length; i++, k = i % bstr.Length)
            {
                bstr[i] ^= bkey[k];
            }
            return Convert.ToBase64String(bstr) + md5code;
        }
        static string mymd5(string str, string action)
        {
            if (action == "EN") return mymd5(str);
            string secret_string = "5*j,.^&;?.%#@!"; 
            string md5code = str.Substring(str.Length - 10, 10);
            str = str.Substring(0, str.Length - 10);
            string key = smd5(md5code + secret_string);

            var UTF8 = new System.Text.UTF8Encoding();
            Byte[] bstr = Convert.FromBase64String(str); //将传入串正文做 base64 解码
            Byte[] bkey = UTF8.GetBytes(key); //将键转成字节数组
            for (int i = 0,k=0; i < bstr.Length; i++,k=i%bstr.Length)
            {
                bstr[i] ^= bkey[k];
            }
            return UTF8.GetString(bstr);
            return base64_encode(UTF8.GetString(bstr));
        }
        static string smd5(string str)
        {
            var md5 = MD5.Create();
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
            StringBuilder ret = new StringBuilder();
            foreach (byte b in s) ret.Append(b.ToString("x2"));
            return ret.ToString();
        }
本来以为很简单,没料到 C# 实在是太差劲了 折腾了一天才弄出来,自己完善去吧
xiaohaogaoshou 2015-04-29
  • 打赏
  • 举报
回复
。。。。。这是鄙视么。没人

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧