<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[子非鱼-的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cwjcsu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cwjcsu]]></copyright><item><title><![CDATA[hexo建立github,gitcafe博客并实时同步的要点]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/49050353</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/49050353</guid><author>cwjcsu</author><pubDate>Sun, 11 Oct 2015 18:57:15 +0800</pubDate><description><![CDATA[用搜索引擎搜索”github 博客”等关键字会出现大量很好的文章教小白一步步搭建。我这里列出一些关键点，希望可以让你少走弯路。这篇博客的markdown源代码在：https://gitcafe.com/cwjcsu/cwjcsu/blob/master/source/_posts/hexo-github-gitcafe.md
其他涉及的源码在同一个仓库可以找到。
1， 不一定要购买域名
很多]]></description><category></category></item><item><title><![CDATA[[置顶] 回忆去年用Java破解unity.exe的过程]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217149</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217149</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:15:02 +0800</pubDate><description><![CDATA[去年我一同学要我破解unity.exe，然后挂在网上卖点钱花。后来我对破解过程涉及的技术问题痴迷了，再后来...
 
unity.exe是一个windows下的二进制程序，有一个用xml签名的license文件，license文件分几个部分：
1，一个CA认证机构的证书（好像是PACE Anti-Piracy）：certCA；
2，unity机构的证书：certU；
3，使用certU签]]></description><category></category></item><item><title><![CDATA[[置顶] java-在非安全网络上建立可信任安全的通道(2/3) ]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217145</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217145</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:15:00 +0800</pubDate><description><![CDATA[在不安全的网络环境下进行密钥交互（1/3，前面那一节），容易遭受中间人攻击，什么是中间人攻击，请google it。
 
通信的双方必须是相互信任的，在这个基础上再进行密钥协商才是可靠的。那么，如何建立信任关系呢？
 
我以前的几篇博文介绍了用如何 用  Java编程方式生成CA证书 以及用CA证书签发客户证书。
 
现在假设，Alice和Bob的证书都是被同一个CA atlas签发的]]></description><category></category></item><item><title><![CDATA[[置顶] java-在非安全网络上建立可信任安全的通道(1/3)]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217143</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217143</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:58 +0800</pubDate><description><![CDATA[看到标题，几乎所有人都会想到SSL，但SSL比较重量级，我想做的是只利用java的JCE体系（不是JSSE）在非安全网络环境下建立起一个可信任的、安全的通道。
      所以这篇博文包括两个主题：可信任和安全。
这一节只考虑如何交互密钥。下一节（2/3）讨论如何建立信任关系，并在可信关系上交换密钥（防止中间人攻击）。
 
     非对称密钥不适合做通道加密，通道加密必然使用对称密钥。既]]></description><category></category></item><item><title><![CDATA[[置顶] java编程方式用CA给证书进行签名/签发证书]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217139</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217139</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:56 +0800</pubDate><description><![CDATA[这些代码首先加载CA证书，然后分别用CA给Alice和Bob签发一个证书并保存到resource/目录下面，用jks格式存储。
CA证书也是用java编程方式制作的，制作过程请看我的上一篇博客。
 
public static void main(String[] args) throws KeyStoreException,
			NoSuchAlgorithmException, Ce]]></description><category></category></item><item><title><![CDATA[[置顶] java编程方式生成CA证书]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217135</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217135</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:54 +0800</pubDate><description><![CDATA[下面是java编程方式生成CA证书的代码，使用的是BC的provider。生成CA证书与生成普通证书的区别是：1，生成CA证书时，issuer和subject一致；2，在ContentSigner.build()的时候（签名的时候）使用的是与待签名公钥相应的私钥。
下面代码，CA生成以后把私钥和证书一起以一个key entry的方式存入一个jks文件。
    static {
		 Sec]]></description><category></category></item><item><title><![CDATA[[置顶] 安全领域的一些概念]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217131</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217131</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:52 +0800</pubDate><description><![CDATA[对称密钥/非对称密钥/key/cipher
symmetric cipher对称密钥：使用相同的密钥进行加密和解密，速度很快
Asymmetric Cipher：非对称密钥：使用公钥加密，私钥解密，速度很慢     key和cipher的区别：可以把cipher看成一台机器，它需要插入一个key才可以工作，可以从一端A插入明文，另一端B输出密文，或者从B插入密文，从A输出明文。      实际]]></description><category></category></item><item><title><![CDATA[[置顶] Project Euler Problem 80-高精度开方-牛顿逼近法]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217127</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217127</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:50 +0800</pubDate><description><![CDATA[It is well known that if the square root of a natural number is not an integer, then it is irrational. The decimal expansion of such square roots is infinite without any repeating pattern at all.The]]></description><category></category></item><item><title><![CDATA[netty做Pipe一端快一端慢时防止内存溢出进行的操作]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217121</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217121</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:45 +0800</pubDate><description><![CDATA[前段时间用netty3.x做了一个pipe的功能，读的速度很快，写的速度很慢，结果读总是把内存耗光（来不及写写到pipe的另一端），后面解决了这个问题。
原来的pipe的代码：
	public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
			throws Exception {
		inboundChan]]></description><category></category></item><item><title><![CDATA[JGroups TCP 发现机制解读]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217119</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217119</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:43 +0800</pubDate><description><![CDATA[jgroups创建一个channel需要创建一个协议栈，协议栈的底层是传输协议，如果使用TCP的话，它的发现机制和心跳是怎么实现的呢？
 
首先，TCP启动的时候会启动一个SocketServer bind到一个特定的地址然后accept：ConnectionAcceptor。jgroups会给每个TCP socketServer创建一个ConnectionMapTCPConnection>，]]></description><category></category></item><item><title><![CDATA[为什么InputStream.read()读取一个byte确返回一个int呢？]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217117</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217117</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:41 +0800</pubDate><description><![CDATA[问题1：为什么InputStream.read()读取一个byte却返回一个int呢？
InputStream.read()返回一个unsigned byte [0 - 255],而java里面没有这个类型，所以用int接收。
byte的范围是[-128,127]，所以如果read()返回的数在[128,255]的范围内时，则表示负数，即
 
(byte)128=-128
 
(byt]]></description><category></category></item><item><title><![CDATA[Java系统时钟几个值得思考的问题]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217113</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217113</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:39 +0800</pubDate><description><![CDATA[System.currentTimeMillis()是依赖于系统时钟的，也就是说，如果你把自己的系统时钟更改了，这个函数的返回会立即生效，变成更改后的值；
System.nanoTime()主要用于记录一个时间段的长度，或者说一个超时，在这个过程中，你更改系统时钟也不会影响。
两个方法的精度一个是毫秒，一个是纳秒，但都是不靠普的（有些系统的时间粒度是10ms），nanoTime()的调用也会消]]></description><category></category></item><item><title><![CDATA[Class.getResourceAsStream]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217109</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217109</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:37 +0800</pubDate><description><![CDATA[Class.getResourceAsStream("abc.properties")方法：1，如果使用“/”开头则从类路径根目录寻找资源；2，没有“/”开头，则选择相对路径，即当前class同包下面找；ClassLoader.getResourceAsStream("abc.properties"):1，不能用“/”开头，只能从根目录寻找。2，根据不同ClassLoader实现也不一]]></description><category></category></item><item><title><![CDATA[logback的SizeBasedTriggeringPolicy和TimeBasedRollingPolicy联合使用问题]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217105</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217105</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:35 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[Linux机器克隆后需要修改的网络配置]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217103</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217103</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:33 +0800</pubDate><description><![CDATA[假设原来的机器是两块网卡，eth0和eth1，克隆以后，MAC也是两块，MAC地址与原来的分别都不一样，但由于系统的一些网络配置没有更新，导致克隆机器的网络启动不了，
比如会抛出异常：Bringing up interface eth0: pcnet32 device eth0 does not seepresent, delaying initialization.
 
或者用ifconf]]></description><category></category></item><item><title><![CDATA[Linux 下VIM去掉在windows下编辑的文本文件里面回车符号]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217101</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217101</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:31 +0800</pubDate><description><![CDATA[用VIM打开windows下面创建的文件会出现^M字符，它表示一个回车符，
（windows下编辑器敲击回车键，键入\r和\n，表示回车和换行，linux下只会有换行符\n)
下面的方式可以去掉所有回车符:
:%s/^M//g
其中，^M不是输入^和M，而是输入:1,Ctr+V;2,回车
//g替换成空字符]]></description><category></category></item><item><title><![CDATA[Java包装类Integer比较]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217095</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217095</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:28 +0800</pubDate><description><![CDATA[1，用符号==比较两个对象，意味着比较他们是否是统一个对象。
2，代码Integer b = 1; 自动装箱，通过javap可以看出起始会调用：
    	invokestatic	#16; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
       即调用Integer.valueOf(int)
3，代码int a =]]></description><category></category></item><item><title><![CDATA[Future机制用于并发编程时的死锁检测]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217091</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217091</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:26 +0800</pubDate><description><![CDATA[Netty源码里面有个类：DeadLockProofWorker，源码如下：
 
 public static final ThreadLocal PARENT = new ThreadLocal();

    public static void start(final Executor parent, final Runnable runnable) {
        if (p]]></description><category></category></item><item><title><![CDATA[WIN7下面 ARP攻击的检测与处理/静态ARP设置]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217087</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217087</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:24 +0800</pubDate><description><![CDATA[win7下防止ARP攻击：
你需要知道你的网关，通常就是路由器的物理地址（MAC）
1，管理员权限运行cmd；
2，arp -a
     查看当前ARP项，注意网关的物理地址，如果与实际的不符，那么你肯定无法上网，此时你遭受了ARP攻击。
3，运行 netsh i i show in
     将显示你的所有网卡的索引号Idx，比如，我的本地连接的idx是11：
 
   
4]]></description><category></category></item><item><title><![CDATA[java-在非安全网络上建立可信任安全的通道(3/3) ]]></title><link>https://blog.youkuaiyun.com/cwjcsu/article/details/9217085</link><guid>https://blog.youkuaiyun.com/cwjcsu/article/details/9217085</guid><author>cwjcsu</author><pubDate>Mon, 01 Jul 2013 17:14:22 +0800</pubDate><description><![CDATA[这篇博文的前两节（1/3，2/3）已经介绍了如何在不安全网络环境下面相互认证双方的身份（建立信任的连接），以及在此基础上进行可靠的密钥协商（DH算法）。
       这一节将介绍如何使用协商好的密钥对通道上流淌的数据进行加密。我将使用AES作为对称密钥的算法，密钥强度：128位。这个过程可以简单概括成下面两个步骤：
 

利用协商好的key创建一个可以用于加密和解密的Aes Cipher；]]></description><category></category></item></channel></rss>