如果我GZip这个文本: 你好,世界 通过C#使用这个代码: Stream stream = new MemoryStream(Encoding.Default.GetBytes("Hello World")); var compressedMemoryStream = new MemoryStream(); using (var gzipStream = new GZipStream(compressedMemoryStream, CompressionMode.Compress)) { stream.CopyTo(gzipStream); gzipStream.Close(); } 结果stream是133字节长 通过Fiddler的Utilities.GzipCompress或这个PHP页面运行相同的string,结果只有31个字节长。 在这两种情况下,input是11个字节,所以我可以想象PHP的结果是正确的,但显然这意味着我不能从.NET中解压缩PHP zip,反之亦然。 为什么.NET的输出更大? 事实上,PHP和Fiddler的结果是相同的,但它们并不相同。 我可以在.NET中解压缩PHP版本,但不能提供Fiddler版本。 PHP页面解压所有这三个,所以看起来好像在Fiddler和.NET的gzip实现之间可能是不兼容的。 按照要求,我已经在这里上传了三个输出到Dropbox。 这些是这些文件的原始hexdumps(不知道他们是否真的有这样的使用,但我认为这表明,提琴手和PHP版本之间的区别是在头,而不是压缩的数据本身): 小提琴手: 0000-0010: 1f 8b 08 00-c2 e6 ff 4f-00 ff f3 48-cd c9 c9 57 …….O …H…W 0000-001f: 08 cf […]
我在这里问了一个问题,回到如何隐藏我的http请求调用,并使其在我的应用程序中更安全。 我不希望人们使用小提琴手2看到电话,并build立一个自动回复。 每个人都告诉我去SSL,电话会隐藏起来,信息保持安全。 我购买并安装了一个SSL证书,并设置了一切。 我启动了fiddler 2并运行一个testing应用程序,连接到一个https web服务以及连接到一个https php脚本。 提琴手2不仅能够检测到这两个请求,但也解密它们! 我能够看到所有的信息,回到我的问题。 如果SSL与安全性没有什么区别,那么使用SSL有什么意义呢? 有或没有SSL我可以看到所有的信息回来和第四,仍然build立一个自动回复。 有没有.NET中的东西我想失去更好地隐藏我的电话通过SSL? 编辑 由于我收到了一些答复,我在这个问题上增加了一个新的部分。 如果一个应用程序连接到一个Web服务来login会怎么样? 该应用程序发送Web服务的用户名和密码。 然后,Web服务将数据发送回应用程序,说明login数据良好或不好。 即使通过SSL,使用小提琴手2的人也可以设置一个自动应答器,然后应用程序被“破解”。 我明白如何在debugging中看到数据是有用的,但是我的问题是确切地说应该确保SSL连接到正在请求的数据。 基本上说不能有一个中间人。