摘要:Base64,通常有人说是加密,其实非也;正确来说是编码。关于加密和编码的区别,请看下面的解释。
Encryption requires a key (string or algorithm) in order to decrypt; hence the "crypt" (root:cryptography)
Encoding modifies/shifts/changes a character code into another. In this case, usual bytes of data can now be easily represented and transported using HTTP.
Base64编码使用6位加两位0,来表示原8位的字节。Base64是MIME邮件中常用的编码方式之一。其原理是将输入的字符串或数据编码成只含有{'A'-'Z', 'a'-'z', '0'-'9', '+', '/'}这64个可打印字符的串,故称为“Base64”。
Base64编码过程描述:将输入数据流每次取6 bit,用此6 bit的值(0-63)作为索引去查表,输出相应字符。这样,每3个字节将编码为4个字符(3×8 → 4×6);不满4个字符的以'='填充。
邮件用Base64编码后,可以直接避免内容被截获;所以才有误认为邮件采用Base64编码加密,其实只是编码而已,因为编码后不是直接可以阅读的文本,需要再次解码。即Encode对应有Decode方法。