说明:在上篇中提到Base64加解密(详细参见上),但Base64本身并不是用来做加解密的。虽然可以通过变化的序列来达到加解密目的,但Base64有一个问题那就是不具备验证性,它不验证目标源是不是经过Base64加密过的,是否能解的开;通通来者不拒,解出来的东西有时候莫名其妙,所以一般还是建议少用Base64去做加解密。
本文提到RSA是一个标准的非对称加解密算法,使用场景:根据RSA的特性,它有公钥和私钥两个密匙,通常可以用在一端加密、另外一通需要解密的场景,另外一个加密的长度问题在正文中讨论;如果仅仅用来做验签则没有必要用。
一、什么是非对称算法
非对称密钥算法是指一个加密算法的加密密钥和解密密钥是不一样的,或者说不能由其中一个密钥推导出另一个密钥。具体实现算法原理可参见官方说明,这里主要基于java的应用级别介绍。
二、RSA中的长度问题
1、RSA初始化长度
Java中实现的初始化长度默认是512,所以如果小于512会抛异常,这里的长度是bit。
2、目标文本长度
<