项目中接口数据突然加密了,fiddler抓包不容易看到解密数据,故修改了FiddlerObject直接解密返回数据。
1、GZIP解压缩
//数据解压方法
public static function decompress(compressed){
if (compressed=="" || compressed==undefined){
return String.Empty;
}
var bsstr=Convert.FromBase64String(compressed);
var ms= new System.IO.MemoryStream(bsstr);
var compressedzipStream = new GZipStream(ms, CompressionMode.Decompress);
var outBuffer = new System.IO.MemoryStream();
var block = new byte[1024];
while (true)
{
var bytesRead = compressedzipStream.Read(block, 0, block.Length);
if (bytesRead <= 0)
break;
else
outBuffer.Write(block, 0, bytesRead);
}
compressedzipStream.Close();
return System.Text.Encoding.UTF8.GetString(outBuffer.ToArray());
}
//数据加密方法
public static function compress(gzipstr){
if (gzipstr==""){
return String.Empty;
}
var bsstr=System.Text.Encoding.UTF8.GetBytes(gzipstr);
var ms= new System.IO.MemoryStream();
var compressedzipStream = new GZipStream(ms, CompressionMode.Compress,true);
compressedzipStream.Write(bsstr, 0, bsstr.Length);
compressedzipStream.Close();
return Convert.ToBase64String(ms.ToArray());
}
2、MD5解密
public static function decodemd5(a){
var md5 = System.Security.Cryptography.MD5.Create();
var key=a.ToString();
var inputBytes = System.Text.Encoding.UTF8.GetBytes(key);
var hash = md5.ComputeHash(inputBytes);
var sb = new System.Text.StringBuilder();
for (var i = 0; i < hash.Length; i++) {
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString()
}
2、base64解密
public static function base64_encode(gzipstr){
if (gzipstr=="" || gzipstr==undefined){
return String.Empty;
}
//urldecode方法,如果参数不需要这一步可以去掉
var bsstr=System.Net.WebUtility.UrlDecode(gzipstr);
//解密方法
var decbuff = Convert.FromBase64String(bsstr);
return System.Text.Encoding.UTF8.GetString(decbuff);
}