base64编码与解码
本文仅代表作者观点,如有不妥,欢迎指正
base64编码不是加密
主要用途:
- HTTP传输二进制数据时将数据转换为base64编码的数据
- 不需要加密,但又不想明文传输的数据
优缺点:
- 二进制数据可以直接base64编码后传输
- 经过base64编码后的数据变为原来的 4/3 倍
编码前后长度变化
before_base64_encode | after_base64_encode |
---|---|
1 | MQ== |
11 | MTE= |
111 | MTEx |
1111 | MTExMQ== |
11111 | MTExMTE= |
111111 | MTExMTEx |
假如 before_base64_encode 为 base64_encode 之前的字符串
从上表可以看出
- 如果 before_base64_encode 的长度是 3 的整数倍,那么 base64 编码后的长度为原来的 4/3 倍。
(before_base64_encode.length() / 3) * 4 - 如果 before_base64_encode 的长度不是 3 的整数倍,那么 base64 编码后的长度为
(before_base64_encode.length() / 3 + 1) * 4 - 编码后的长度是 4 的整数倍,原字符串的长度不是 3 的整数倍的话,编码后尾部会有=