2018-03-19

BASE64

用于传输8Bit的编码方式之一,一种基于64个可打印字符来表示二进制数据的方法。主要用来在HTTP环境下传递较长的标识信息。,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

原理

转ASCII ->分组(6位一组)->高位补0

java版本

import java.util.Base64;
对于标准的Base64:
加密为字符串使用Base64.getEncoder().encodeToString();
加密为字节数组使用Base64.getEncoder().encode();
解密使用Base64.getDecoder().decode();
对于URL安全或MIME的Base64,只需将上述getEncoder()getDecoder()更换为getUrlEncoder()getUrlDecoder()
或getMimeEncoder()和getMimeDecoder()即可。

应用

1.Base64 也会经常用作一个简单的“加密”来保护某些数据,而真正的加密通常都比较繁琐。

2.垃圾讯息传播者用Base64来避过反垃圾邮件工具,因为那些工具通常都不会翻译Base64的讯息。

注意

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

与Base32的区别

  1. 主要就是空间效率的区别,Base64是具有比较高的空间效率的。
  2. Base32,32个字符来表示,编码后变成原来的8/5,但是最后如果不足8个字符,将用=来补充。而Base64编码大小变成原来的4/3。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  • 如何解读财报?看懂本文就够了! 2018-03-17 端宏斌 雪球 炒股,看雪球就够了 每晚雪球菌给您离真相更近的...
    品位出击阅读 1,472评论 0 0
  • 不用依赖ServletContext
    else05阅读 5,048评论 0 0
  • 最近有机会转换思维在特定条件下测试内容的表现。而这一思维模式,恰巧令我对苹果式 AI 有了新的想法。 苹果式 AI...
    aJ阅读 2,144评论 0 1
  • 人生没有说明书,一切要靠自己去经历,但有一句话说的好:“如果我们不了解人生,生活对我们来说就是一场惩罚。”许多人的...
    王淇生阅读 1,684评论 0 0

友情链接更多精彩内容