首先要学习RSA算法,百度百科
http://baike.baidu.com/link?url=NoLxCStbrPJzTWXK7btu9Xbt8YLCLXXdc39GopP8A_6ImzrhzbDxLkzNDiZwO7xrbJPOorSwMqIyG87XnG4XpgR2KniYu0cJgWxzyv0LwJQzzATYstuTHFqNx3GhkW-V
什么是两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,这句话怎么理解呢?
其中涉及到了素数,素数介绍在百度百科
http://baike.baidu.com/link?url=_FKgb6ySUvZRZYExSKXQYq_ORjD4N8uuY77hY8cTczHPu2AUYiwn4jmYIrYu9SC-hUIbbr3rsvuWUq2qp62ZqHCGf8N5KQiTuFEPJJYSETEhYRanibG4lgYxcQp5LBmpdVTUpu3hToZvIhhX-mbKua
Hex.decodeHex
其中遇到这个方法,hex查看了一下是16进制的缩写。
SECTION 03 Hex 编解码
通常我们会对于 URL Form GET 时候进行 16 进位编码, 将 byte[] 转成 char[],
package com.softleader.sample.codec; import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.*; public class HexTest { public static void main(String args[]) { Hex hex = new Hex(); String str = "中文"; char[] enbytes = null; String encodeStr = null; byte[] debytes = null; String decodeStr = null; try { enbytes = hex.encodeHex(str.getBytes()); encodeStr = new String(enbytes); debytes = hex.decodeHex(enbytes); decodeStr = new String(debytes); } catch (Exception ex) { ; } System.out.println("编码前:"+str); System.out.println("编码后:"+encodeStr); System.out.println("解码后:"+decodeStr); } }
cmd>java com.softleader.sample.codec.HexTest
执行结果
编码前:中文
编码后:a4a4a4e5
解码后:中文
这个函数的意思就是将char[]转换成byte[]
http://commons.apache.org/proper/commons-codec/
这是commons-codec的apache的官网,看了一下例子,感觉是用来处理各种编码的。
找到了一个网址:
http://www.zihou.me/html/2011/03/23/2983.html
这里有一些用法。