public static string _myDecrypt(string inData) { //******下面的代码是服务器上的加密方法 /* function __myEncrypt($data){ * * if(isset($_GET['r'])){ * //客户端设置KS_CMD("set", "<rsa>0</rsa>")会执行下列加密算法 * $rc4密钥2 = _rs(2); * $rc4密钥3 = _rs(3); * $rc4加密 = rc4byte($rc4密钥2,$data); * $rc4加密 = rc4byte($rc4密钥3,$rc4加密); * $base64编码数据 = base64_encode($rc4加密); //必须base64_encode * return $base64编码数据; * }else{ * //客户端不设置KS_CMD("set", "<rsa>0</rsa>")就会执行下列加密算法 * $rc4密钥 = _rs(2); //取ADVAPI字符串资源第二行字符串做为rc4密钥,当然也可以使用make_key()随机生成一个。 * $rsa加密的rc4密钥 = encode_rsa2(_rs(1),$rc4密钥);//对rc4密钥进行rsa加密, * $加密后的数据 = base64_encode(rc4byte($rc4密钥,$data)); //对data数据进行rc4加密,然后再base64编码 * $返回数据 = $rsa加密的rc4密钥 . ',' . $加密后的数据;使用‘,’合并密钥和加密数据,然后返回客户端 , * return $返回数据; * } * }*/ //*****下面的代码是服务器第一种加密方式进行解密的算法 //string rc4key = ""; //byte[] str1, str2; //byte[] base64 = SoftXLic.Base64Decode(inData); //rc4key = "FC7fx6KbzwmBJ98pAiEArOz2Kej"; //str1 = SoftXLic.rc4(rc4key, base64); //rc4key = "CIQDirubbjUUwuvO86IaeFFI0oXFa"; //str2 = SoftXLic.rc4(rc4key, str1); //return System.Text.Encoding.Default.GetString(str2); //*****下面的代码是服务器第二种加密方式进行解密的算法 string publicKey = "<RSAKeyValue><Modulus>wkX6jOTuOc+r2d9XuPybqWWXWCySTdQl33zo8HWoSoKuLz8+HKSpslcoy1MMyw07GA7sclODMZ/m1KtHy/FYrw==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"; string rc4enkey = ""; string rc4endata = ""; if (inData.Split(',').Length == 2) { rc4enkey = inData.Split(',')[0]; rc4endata = inData.Split(',')[1]; } else { return("开发者自己设置返回的错误"); } byte[] deData = SoftXLic.Base64Decode(rc4endata); //进行base解码 string rc4key = SoftXLic.RSADecrypt(rc4enkey, publicKey); //对rc4enkey使用rsa进行解密 byte[] byteData = SoftXLic.rc4(rc4key, deData); //使用rc4key对deData进行解密 string data = System.Text.Encoding.Default.GetString(byteData); return(data); }
public static string FD_(string ioData) { string data_s = ""; byte[] b64buff; if (ioData.StartsWith(SoftXLic._softhead)) //检查字符串是否是密文 { ioData = ioData.Replace(SoftXLic._softhead, ""); //去除密文标识头 data_s = SoftXLic._myDecrypt(ioData); b64buff = SoftXLic.Base64Decode(data_s); return(System.Text.Encoding.Default.GetString(b64buff));; } else { if (!ioData.StartsWith("<xml>")) { return("<xml><state>140</state><message>DLL内部错误,返回的数据异常" + ioData + "</message></xml>"); } } return(ioData); }