1.编码算法 简介
是网络上最常见的用于传输8Bit字节码的编码方式之一 , 就是一种基于64个可打印字符来表示二进制数据的方法 。可查看~ , 上面有MIME的详细规范 。
编码是从二进制到字符的过程 , 可用于在HTTP环境下传递较长的标识信息 。例如 , 在Java 系统中 , 就采用了来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串 , 用作HTTP表单和HTTP GET URL中的参数 。在其他应用程序中 , 也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式 。此时 , 采用编码具有不可读性 , 需要解码后才能阅读 。
码表
索引编码索引编码索引编码索引编码
17
34
51
18
35
52
19
36
53
20
37
54
21
38
55
22
39
56
23
40
57
24
41
58
25
42
59
26
43
60
10
27
44
61
11
28
45
62
12
29
46
63
13
30
47
14
31
48
15
32
49
16
33
50
特点:加密原理简单
实现
一般的来说加密数据需要使用到如下三个包
JDK:java.
CC:Codec
BC:
JDK实现
JDK 1.7写法
//加密public static String jdkBase64Encoder(String str){BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(str.getBytes());}//解密public static String jdkBase64decoder(String str) throws IOException {BASE64Decoder decoder = new BASE64Decoder();return new String(decoder.decodeBuffer(str));}//调用public static void main(String[] args) throws IOException {System.out.println("原始字符串: " + BASE_STRING);String enStr = jdkBase64Encoder(BASE_STRING);System.out.println("Base64编码后: " + enStr);String deStr = jdkBase64decoder(enStr);System.out.println("Base64解码后: "+deStr);}
结果
原始字符串:
编码后:
解码后:
JDK1.8+写法
public static String jdkBase64Encoder(String str){String desc = Base64.getEncoder().encodeToString(str.getBytes(StandardCharsets.UTF_8));System.out.println("加密后的字符串为:"+desc);}public static String jdkBase64decoder(String str) throws IOException {String unDecodeStr=new String(Base64.getDecoder().decode(str),StandardCharsets.UTF_8);System.out.println("解密后的字符串为"+unDecodeStr);}
Codec实现
CC包的写法是简化了许多,类似JDK1.8的写法 。
MAVEN依赖
import org.apache.commons.codec.binary.Base64;import java.io.IOException;/*** CommonCodec Base64* @author yanlong*/public class CCBase64 {private static final String BASE_STRING ="security base64";public static void main(String[] args) throws IOException {System.out.println("原始字符串: " + BASE_STRING);byte[] encStr = Base64.encodeBase64(BASE_STRING.getBytes());System.out.println("Base64编码后: " + new String(encStr));String deStr = new String(Base64.encodeBase64(encStr));System.out.println("Base64解码后: "+deStr);}}
实现
MAVEN依赖
- java学习笔记2--面向对象编程
- java中静态块的作用,调用顺序和使用方法
- 一 微信公众平台开发JAVA验证来自微信服务器的消息
- 4 零基础学java---方法method
- 海贼王在中国哪年上映
- 1、改变参考文献在正文和末尾中的颜色
- 快速调整毕业论文格式:Word中给表格设置不同磅值的内外框
- 受较强冷空气影响中东部地区将迎降温降雨 广东广西局地有暴雨到大暴雨
- Redis 中的 流水线与事务 流水线
- 基础概念:书中的域、final关键字