java RSA公钥加密,私钥解密算法例子

RSA公钥加密,私钥解密
这是最常用到的模式。为什么这么使用,因为在RSA的密钥分配中,你是将私钥自己保留着,而将公钥公开。私钥具有唯一性,只有自己知道。公钥是广泛分布的,可以认为大家都知道的。
当你想让其他人给你发送一条加密数据的时候,你首先把公钥给他,他用公钥加密数据,并把公钥加密后的数据发送给你。你这就可以用私钥来解密了。而如果其他人拿到他发送的数据,是没有办法解密的,因为私钥只在你手中。
这就保证了数据不会被外人解析。
RSA算法原理 http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html
“非对称加密算法”。
(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。
如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。公钥用于加密, 私钥用于解密.原文:http://my.oschina.net/u/2284972/blog/525301
RSA 是一种非对称加密算法,一般很难破解,因此一些要求比较高的系统通常会采用rsa加密算法,一般来说用RSA加密有如下几个步骤.
1. 生成公钥与私钥
2. 用公钥对需要加密的字符串等进行加密
3. 在需要解密的地方,用私钥进行解密
下面对上面的几个部分贴出代码.1. 生成公钥与私钥

2. 读取公钥方法

3.读取私钥方法

4. 测试公钥加密,私钥解密

查看结果:

程序代码 程序代码

cipher: J���
�nE��J�b9��CO��I�?�g[B{�w��u0����}�r6
�Q��Xa��ٝ�͊��N}n�]�@��_9!D��_�|k�ͪ&g�^��ɿ�XTa$�7��*�{7�R���v�S
plain : thisIsMyPassword$7788

说明加密解密成功。

备注,这里记录的只是测试方法,当然在实际使用过程中,可能还需要 对加密后的 byte[] 采用 base64 编码,转换成字符串存储起来,在解密的时候,先通过 base64 还原成 byte, 然后在解密,这样会更好。详细的方法,

可以参考这篇文章 :http://www.yihaomen.com/article/java/376.htm