说起Base64编码,很多人都把他当做加密算法来使用,殊不知它只是一种编码而已。
如果你用它来进行网络通讯加密,很容易被破解,切记!它不是加密算法!
Base64的由来
为什么叫Base64呢?
因为它仅支持64位可打印字符(52位英文大小写字母,10位数字及+、/),如下图:
早期的传输协议,例如邮件SMTP只能传送可打印的ASCII码,导致原来8bit(0~255)超过了ASCII所表示的范围(ASCII共127个字符,0-31和127为控制字符或者通信专用(共33),32-126为可打印字符(共95))。
假设我们通过邮件传输有个图片,其中有个byte的值为10111011,对应的10进制为187,超过了ASCII码的范围,传输则为乱码,图片则不能被正常解析和显示,就像我们用记事本打开图片一样,你总会看到乱码。
为此,Base64诞生了,用6位来表达原来的8位字符,把原本ASCII或者超出其范围的字符转换成可打印的字符。
那么如何解决8位字符和6位字符的转换呢(即Base64编码)
相关阅读 >>
实现c#中图片.byte[]和Base64string的转换方法的详解
identityserver4 signingcredential(rsa 证书加密)实例详解
更多相关阅读请进入《Base64》频道 >>
C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。