java
子非鱼焉
数学物理天文科幻爱好者,看家手艺是Java http://debug4.me
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
logback的SizeBasedTriggeringPolicy和TimeBasedRollingPolicy联合使用问题
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> /var/log/testglog /var/log/test.%d{yyyy-MM-dd}.log 30 10MB %-15d{y原创 2013-07-01 17:14:35 · 6006 阅读 · 1 评论 -
[置顶] java编程方式生成CA证书
下面是java编程方式生成CA证书的代码,使用的是BC的provider。生成CA证书与生成普通证书的区别是:1,生成CA证书时,issuer和subject一致;2,在ContentSigner.build()的时候(签名的时候)使用的是与待签名公钥相应的私钥。下面代码,CA生成以后把私钥和证书一起以一个key entry的方式存入一个jks文件。 static { Sec原创 2013-07-01 17:14:54 · 1190 阅读 · 0 评论 -
为什么InputStream.read()读取一个byte确返回一个int呢?
问题1:为什么InputStream.read()读取一个byte却返回一个int呢?InputStream.read()返回一个unsigned byte [0 - 255],而java里面没有这个类型,所以用int接收。byte的范围是[-128,127],所以如果read()返回的数在[128,255]的范围内时,则表示负数,即 (byte)128=-128 (byt原创 2013-07-01 17:14:41 · 947 阅读 · 0 评论 -
泛型类里面获取到泛型的类型
下面的代码可以让你在抽象的泛型类里面获取到泛型的类型abstract class A { Class clazz; void doGetClass() { Type genType = this.getClass().getGenericSuperclass(); Type[] params = ((ParameterizedType)原创 2013-07-01 17:14:16 · 925 阅读 · 0 评论 -
用Java模拟Http请求
1),利用httpclient4.× 写一个http的客户端,模拟浏览器请求,public void post(List payload) throws Exception{ HttpPost post = new HttpPost(uri); HttpEntity result = null; try {原创 2013-07-01 17:13:54 · 525 阅读 · 0 评论 -
[置顶] java-在非安全网络上建立可信任安全的通道(2/3)
在不安全的网络环境下进行密钥交互(1/3,前面那一节),容易遭受中间人攻击,什么是中间人攻击,请google it。 通信的双方必须是相互信任的,在这个基础上再进行密钥协商才是可靠的。那么,如何建立信任关系呢? 我以前的几篇博文介绍了用如何 用 Java编程方式生成CA证书 以及用CA证书签发客户证书。 现在假设,Alice和Bob的证书都是被同一个CA atlas签发的原创 2013-07-01 17:15:00 · 610 阅读 · 0 评论 -
Java系统时钟几个值得思考的问题
System.currentTimeMillis()是依赖于系统时钟的,也就是说,如果你把自己的系统时钟更改了,这个函数的返回会立即生效,变成更改后的值;System.nanoTime()主要用于记录一个时间段的长度,或者说一个超时,在这个过程中,你更改系统时钟也不会影响。两个方法的精度一个是毫秒,一个是纳秒,但都是不靠普的(有些系统的时间粒度是10ms),nanoTime()的调用也会消原创 2013-07-01 17:14:39 · 784 阅读 · 0 评论 -
java-在非安全网络上建立可信任安全的通道(3/3)
这篇博文的前两节(1/3,2/3)已经介绍了如何在不安全网络环境下面相互认证双方的身份(建立信任的连接),以及在此基础上进行可靠的密钥协商(DH算法)。 这一节将介绍如何使用协商好的密钥对通道上流淌的数据进行加密。我将使用AES作为对称密钥的算法,密钥强度:128位。这个过程可以简单概括成下面两个步骤: 利用协商好的key创建一个可以用于加密和解密的Aes Cipher;原创 2013-07-01 17:14:22 · 523 阅读 · 0 评论 -
Spring2.5.6 的一段源码疑似bug
在AbstractJdbcInsert类中的方法: private void setParameterValues(PreparedStatement preparedStatement, List values, int[] columnTypes) throws SQLException { int colIndex = 0; for (Object value : v原创 2013-07-01 17:13:09 · 814 阅读 · 0 评论 -
[置顶] 回忆去年用Java破解unity.exe的过程
去年我一同学要我破解unity.exe,然后挂在网上卖点钱花。后来我对破解过程涉及的技术问题痴迷了,再后来... unity.exe是一个windows下的二进制程序,有一个用xml签名的license文件,license文件分几个部分:1,一个CA认证机构的证书(好像是PACE Anti-Piracy):certCA;2,unity机构的证书:certU;3,使用certU签原创 2013-07-01 17:15:02 · 924 阅读 · 0 评论 -
JGroups TCP 发现机制解读
jgroups创建一个channel需要创建一个协议栈,协议栈的底层是传输协议,如果使用TCP的话,它的发现机制和心跳是怎么实现的呢? 首先,TCP启动的时候会启动一个SocketServer bind到一个特定的地址然后accept:ConnectionAcceptor。jgroups会给每个TCP socketServer创建一个ConnectionMapTCPConnection>,原创 2013-07-01 17:14:43 · 1161 阅读 · 0 评论 -
车羊问题的一种简洁证明
在csdn上看到一篇关于车羊问题的文章(http://blog.youkuaiyun.com/naturebe/article/details/7272232),我编了个程序证明了结论,然后给出了一种简洁的数学证明。如下: 车羊问题(Car and Goats problem)又叫蒙提霍尔问题(Monty Hall Problem)或三门问题。这个问题来源于美国电视娱乐节目Let’s Make a D原创 2013-07-01 17:14:13 · 940 阅读 · 0 评论 -
[置顶] 安全领域的一些概念
对称密钥/非对称密钥/key/ciphersymmetric cipher对称密钥:使用相同的密钥进行加密和解密,速度很快Asymmetric Cipher:非对称密钥:使用公钥加密,私钥解密,速度很慢 key和cipher的区别:可以把cipher看成一台机器,它需要插入一个key才可以工作,可以从一端A插入明文,另一端B输出密文,或者从B插入密文,从A输出明文。 实际原创 2013-07-01 17:14:52 · 510 阅读 · 0 评论 -
netty做Pipe一端快一端慢时防止内存溢出进行的操作
前段时间用netty3.x做了一个pipe的功能,读的速度很快,写的速度很慢,结果读总是把内存耗光(来不及写写到pipe的另一端),后面解决了这个问题。原来的pipe的代码: public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { inboundChan原创 2013-07-01 17:14:45 · 1803 阅读 · 0 评论
分享