3. Base64用途和原理

1.Base64 能干什么?

转码 
图片
装逼
编、解码

2.Base64 是加密算法吗?

不是,是一种编码格式

3.什么情况下,使用Base64?

URL特殊字符,转码,转义
嵌入图片 src="base64编码之后的内容"

4.Base64原理

官方解释:Base64就是使用64个可打印字符来表示二进制数据的方法
理解:把3个8位字节(3*8=24)转换为4个6位得字节(4*6=24),之后在每个6位的前面补两个0,形成8位,即一个字节。再根据每个字节的值,用下表中的值替换,不足四个字节的,补"="
案例:
    初始值 11111111 11111111 11111111
    转换值 00111111 0011111 00111111 00111111
    所以Base64中    
        min 000000 0
        max 111111 63
    共需要64个字符
        a-z 26
        A-Z 26
        0-9 10
        +/  2

image

第一步:找到中文字符在操作系统中对应字符编码表(chcp)GB2312
第二步:中文找到字符编码中的十进制值(参照http://tools.jb51.net/table/gb2312)
    计算方式 按照编码表查出左边四位,如升,左边为十六进制C9F0,上面为D,计算方式为将16进制转为10进制 51696 + 13 = 51709

image

    案例:升职加薪 对应为(EXCEL函数=CODE(G15)可快速运算)
        升 51709
        职 54960
        加 48339    
        薪 53437
第三步:十进制转换为二进制
        升 1100100111111101
        职 1101011010110000
        加 1011110011010011    
        薪 1101000010111101
第四步:对二进制进行分组,每6个一组,不足6位最后补0
    110010 011111 110111 010110 101100 001011 110011 010011 110100 001011 110100
第五步:转为10进制,对应base64编码,结尾 “=”表示结束
    50 31 55 22 44 11 51 19 52 11 52
    y  f  3  W  s  L  z  T  0  L  0  =
第六步:验证
public static void main(String[] args) {
		BASE64Decoder base64Decoder = new BASE64Decoder(); 
		BASE64Encoder base64Encoder = new BASE64Encoder();
		
		try {
			String result = new String(base64Decoder.decodeBuffer("yf3WsLzT0L0="),"GB2312");
			System.out.println(result);
			//升职加薪
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼鱼大头鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值