java SE
文章平均质量分 69
liwei2633
这个作者很懒,什么都没留下…
展开
-
学习Swing做的打飞机小游戏
下面是代码package game;import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;i原创 2014-03-06 11:18:49 · 1464 阅读 · 0 评论 -
JAVA用Socket模拟HTTP文件上传
根据RFC1867协议模拟HTTP文件上传try { String host = "127.0.0.1"; int port = 8080; Socket socket = new Socket(host,port); StringBuffer buffer = new StringBuffer();原创 2015-11-10 11:23:25 · 1152 阅读 · 0 评论 -
JAVA写HTTP代理服务器(一)-socket实现
HTTP代理服务器是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。HTTP 代理有分两种:RFC 7230 - HTTP/1.1: Message Syntax and Routing(即修订后的 RFC 2616,HTTP/1原创 2017-09-04 16:12:40 · 35110 阅读 · 11 评论 -
JAVA写HTTP代理服务器(二)-netty实现
接上一篇,因为是用BIO的一个连接一个线程去处理,对于HTTP这种短连接协议来说CPU开销是非常大的,就算加入了线程池也不能完美解决BIO的缺陷,所以可以用NIO进行服务器的优化,NIO基于IO多路复用以实现单线程处理大量连接,但是编写起来比较复杂,所以就选择了netty,这里就不在多叙netty是什么了。思路netty有内置的http编解码器,那就可以轻易做到不只是转发原始数据,而是可以修改响应原创 2017-09-04 16:13:49 · 13715 阅读 · 7 评论 -
从JVM中dump出动态代理生成的class
由于动态代理生成的class是直接以二进制的方式加载进内存中的,并没有对应的.class文件生成,所以如果想通过反编译工具查看动态代理生成的代码需要通过特殊的手段来处理。方案一设置运行环境变量,运行后会把class文件生成在classpath目录下//动态代理时生成class文件System.getProperties().put("sun.misc.ProxyGenerator.saveGene原创 2017-10-18 14:30:29 · 1968 阅读 · 0 评论 -
JAVA写HTTP代理服务器(三)-https明文捕获
很久没更新了,其实https明文拦截已经实现很久了只是没发博客(毕竟我太懒),步入正题吧,上一篇用netty实现的http代理服务器还无法对https报文进行解密,原因也说了,就是服务器的私钥不在我们这,根据RSA公钥加密私钥解密的特性,如果我们没有私钥的话是不可能获取到https的真实内容的,那有没有什么办法解密https的报文呢,当然有通过代理服务器伪造ssl证书就可以达到目的,那么具体是什么原原创 2017-10-31 17:50:22 · 3611 阅读 · 3 评论 -
OpenSSL创建带SAN扩展的证书并进行CA自签
什么是 SANSAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。来看看百度的证书,百度证书的扩展域名有这么多,其中还有了*.hao123.com,那我们再看看www.hao123.com的证书 发现的确是用的前面的百度证书 所以SAN带来原创 2017-09-20 15:42:49 · 13466 阅读 · 0 评论