首页 > Web开发 > 详细

第二章 Base64与URLBase64

时间:2015-12-28 20:26:37      阅读:149      评论:0      收藏:0      [点我收藏+]

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

原文:http://www.cnblogs.com/java-zhao/p/5083427.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!