第5章 电子邮件传输算法—Base64
Base64是什么?它和加密解密操作有什么关系吗?让我们先来看看以下这段看似诡异的乱码:
SmF2YeWKoOWvhuS4juino+WvhueahOiJuuacrw==
没错,这就是经过Base64编码后的字符串。对它解码后,我们获得以下内容:
Java加密与解密的艺术
一段文字在经过Base64编码后面目全非,而经过Base64解码后又能恢复本来面目,这很有加密解密的意味。不过Base64算法并不是加密算法,仅仅是加密算法的近亲。Base64算法的转换方式很像古典加密算法中的单表置换算法。本章将向读者介绍这种常用于电子邮件的算法。
5.1 Base64算法的由来
Base64算法最早应用于解决电子邮件传输的问题。在早期,由于“历史问题”,电子邮件只允许ASCII码字符。如果要传输一封带有非ASCII码字符的电子邮件,当它通过有“历史问题”的网关时就可能出现问题。这个网关很可能会对这个非ASCII码字符的二进制位做调整,即将这个非ASCII码的8位二进制码的最高位置为0。此时用户收到的邮件就会是一封纯粹的乱码邮件了。基于这个原因产生了Base64算法。