首先明确一点base64 是一种编码格式。就想UNICODE一样,能在电脑上表示所有字符,或者换句话说通过编码能让电脑理解你想要表示的字符(因为电脑只知道0和1 )
就像ascII 中 0100 0001 表示A. 当然base64 并不是为了表示当个字符的。
想base64 的名字一样。他的作用是用64个字符(A-Z a-z 0-9 + /)表示所有其他字符。 既然要表示字符,那个肯定要有一个对照表。
比如A 对应的码值就是0 , w 对应的码值是 48 。。
ascII 工256个字符,每个字符都是用8bit ,如 0100 0001 表示A
那么如何把256个字符用 64个字符表示呢。。
64=2的6次方,对应二进制就是能表示 000000-111111 。
base64 的做法就是切分: 简单来说就是原来的8位切分成6位,不足的话补0 , (注意如果编码后的字符不足4的倍数,用=补上)
如果,参考 https://www.cnblogs.com/libin-1/p/6165485.html
总结:
1. base64 不是加密
2. base64 会是编码增加1/3
3. base64的作用是将所有字符用我们生活中更常见的字符表示(A-Z a-z 0-9 + /).