2.1、算法基本规则:
Base64算法公开、密钥也公开的特性不符合基本算法规则,所以很容易被破解,所以一般不用于企业级的加密操作。
注意:具体的算法与密钥(对于Base64来讲,是一张字符映射表)可在《Java加密与解密的艺术(第2版)》第5章“电子邮件传输算法--Base64”中查看
2.2、应用场景
- 简单加密(加密要求不高的情况下,即一眼看**的那种情况下使用)
- 加密(改造字符映射表,即私藏秘钥)
- 电子邮件传输(邮件内容使用Base64加密,实际上主要是处理中文问题的)
- 网络数据传输(与URLBase64相关,下边会讲)
- 密钥存储(密钥是一段二进制数据,密钥在通信双方的传递过程:甲方将密钥采用Base64编码,写入文档,通过安全途径(例如线下等)传给乙方,采用Base64存储密钥是为了增强密钥的易读性)
- 数字证书存储
- OpenSSL操作Base64产生数字证书
通常,我们使用Base64最多的情况就是存储密钥。
2.3、Base64实现方式
实现方式有三种:
- Commons Codec(简称“CC”)
- Bouncy Castle(简称“BC”)
- JDK(不推荐使用,当做JDK没实现即可)
其中,最推荐使用Commons Codec。
注意:cc与bc的版本号,还有我实在jdk1.6下边调的
2.3.1、基于CC实现的Base64加解密
第一步:加入jar
第二步:编写代码
第三步:测试
测试结果:
注意:可以采用debug断点调试来查看每一个变量的值来验证上边的情况。
2.3.2、基于BC实现的Base64加解密算法
对于BC来讲,只有一般Base64加密算法,jar包以及简要代码如下:
2.4、URLBase64实现方式
一般来讲这种算法仅用于使用get方式传递私密数据和以get方式传递二进制数据。
- commons codec(CC,推荐使用,因为不采用尾部补全,所以数据长度较短,减少了网络传输时间,尾部补全是Base64的)
- bouncy castle(BC)
2.4.1、基于CC实现URLBase64
测试代码自己去仿照上述的去写就好了。
2.4.2、基于BC实现URLBase64
测试代码自己去写,然后查看加密后的字符串与CC加密后字符串有什么不同。
原标题:第二章 Base64与URLBase64
关键词:URL