补充知识点:
密钥: 加密方用公钥,解密方用私钥
重要的事情强调六遍:
不用自己写加密算法
不用自己写加密算法
不用自己写加密算法
不用自己写加密算法
不用自己写加密算法
不用自己写加密算法
Cipher类
Android有专门用来加密的工具类Cipher类,他里面封装了几种常用的加密算法,本篇介绍两种AES,RSA。
用法
1 | 分三步:以AES举例说明 |
对称加密
概念
出自百度百科
需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
因此,加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。
说了这么多废话,要我说,就一句话公钥,私钥 相同 的加密方式称之为对称加密
用法——AES
申明:我这里并不是说对称加密就只有AES这一种方式,相反,对称加密有很多种,我这里只讲我用到的对称加密中的一种方式——AES
1 |
|
上面给的三个方法,一个获取密钥,一个加密,一个解密,注释写的很清楚,我就不用再讲了,转16进制的方法,我前一篇讲加密的时候就给出来了,不知道的可以去前一篇看一下,我下面给出调用方式和结果截图
1 | try { |
结果:
非对称加密
概念
出自百度百科
1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
说了这么多废话,要我说,就一句话公钥,私钥 不相同 的加密方式称之为对称加密
用法——RSA
申明:我这里并不是说非对称加密就只有RSA这一种方式,相反,对非称加密有很多种,我这里只讲我用到的非对称加密中的一种方式——RSA
辣么,成对公钥,私钥怎么来呢?难道我们自己去写吗?你要是会写,那你很棒棒哦,反正我不会(爱咋咋),我是在线生成公钥,私钥对。用法跟上面讲的AES是类似的:
1 | /** |
这里,注释说的很清楚,看懂了前面的AES,辣么,这个RSA应该不是问题。