base64和hex

我们知道,字符分为二种:一种是可见字符;另一种是不可见字符。

1)三种编码方式

hex也称为base16,意思是使用16个可见字符来表示一个二进制数组,编码后数据大小将翻倍,因为1个字符需要用2个可见字符来表示。

base32,意思是使用32个可见字符来表示一个二进制数组,编码后数据大小变成原来的8/5,也即5个字符用8个可见字符表示,但是最后如果不足8个字符,将用=来补充。

base64,意思是使用64个可见字符来表示一个二进制数组,编码后数据大小变成原来的4/3,也即3个字符用4个可见字符来表示。

2)三种编码的区别

主要就是空间效率的区别,base64是具有比较高的空间效率的。当然,hex编码不区分大小写,但是base32与base64是区分的。

3)三种编码相同点

就是大家都是一种稳定的把二进制数组变成可见字符的编码方式。

4)为什么有的场合,必须要使用可见字符?

例如在网络中传输数据时,不同路由器对于不可见字符的处理是不同的,因此可能出现数据错误,因此还必须使用可见字符。

转载于:https://www.cnblogs.com/hnxxcxg/p/11126688.html

base64和hex相关推荐

  1. python decode hex_在python2.7中使用b64decode()将base64转换为hex

    解决方案 实际上,以下3种方法在Python2.7中有效:b64 = "/6o=" #1 b16 = b64.decode('base64') print repr(b16) # ...

  2. Js实现在线Hex转Base64,在线Base64转Hex

    具体参考:在线Hex和Base64互转工具

  3. js实现在线AES加密解密(支持ECB,CBC,并输出Base64或Hex)

    具体请参考:AES在线加密/解密

  4. Java实现Base64编码和解码的方式

    Base64 编码是什么? Base64 是一种编码的方式, 并不是安全领域的加密解密算法. Base64 的目的是把一些二进制符转成普通字符, 方便在网络上传输. 因为有些系统只能使用ASCII字符 ...

  5. Nodejs base64编码与解码

    1、普通字符串 //编码new Buffer(String).toString('base64');//解码new Buffer(base64Str, 'base64').toString(); 2、 ...

  6. base64加密解密 nodejs

    1.字符串加密解密 //编码 new Buffer(String).toString('base64');//解码 new Buffer(base64Str, 'base64').toString() ...

  7. Golang实现SHA256加密和Base64编码

    文章目录 1.前言 2.Base64 编码 2.1 Base64 标准方式编码解码 2.2 URL和文件名安全编码解码 2.3 无填充编码 3.SHA256加密 1.前言 JWT的生成规范中常用到Ba ...

  8. 用js实现基于Base64的数据或者图片的编码与解码

    背景: 公司需要对接第三方的合作商,需要跳转至对方的网站,使用get请求访问对方链接直接跳转,get请求会直接暴露登陆的用户名和密码,我们采用base64编码,对用户信息进行保护. 常用的base64 ...

  9. golang中base64 md5 sha256的编解码及摘要算法、aes、des、sha1

    golang中base64 md5 sha256的编解码及摘要算法.aes.rsa.des.sha1 golang中base64 md5 sha256的编解码及摘要算法 关于加密解密 AES DES ...

最新文章

  1. pytorch的nn.linear 转
  2. 使用 Vagrant 打造跨平台开发环境
  3. 【数学建模】MATLAB应用实战系列(九十)-变异系数法应用案例(附MATLAB和Python代码)
  4. 活动 | 壁咚小咖,霸道表白!分享我和PMcaff一起成长的故事
  5. like mysql 相反_Mysql数据库的常用操作
  6. c语言程序设计授课进度安排表,C语言程序设计教学大纲、教学计划进度简表
  7. spring异常处理实例(登录例子)
  8. 火星人敏捷开发手册 2011-10-14 发布
  9. Linux使用yum安装时出现The program package-cleanup is found in the yum-utils package.解决方法...
  10. 基于Jupyter Notebook---卷积神经网络的图像分类(keras对猫狗图像数据集进行分类)
  11. ajax用iframe,使用ajax Post请求更新iframe内容
  12. Atitit hibernate3 hinernate4 hibernate5新特性attilax总结
  13. 【信息技术】【2014.07】交通监控中的车辆跟踪与速度估计
  14. Android查看应用签名
  15. Python暴力破解WIFI(超详细破解教程+UI设计教程+步步解析)
  16. 30行JS代码带你手写自动回复语音聊天机器人
  17. java 常量pi_Java-常量
  18. 杂记(关于域名、网名以及一些常用图像格式、像素)
  19. 【Linux】常用命令:网络、内存、cron 超详细介绍
  20. 如何修改Julia语言环境的安装包默认安装文件夹的位置

热门文章

  1. mybatis一个方法执行多条sql_精尽MyBatis源码分析——SQL执行过程之Executor!
  2. linux 安装 中文输入法,[linux]安装中文输入法
  3. 前端学到什么水平就可以去找工作呢?
  4. 6个最热门的IT技术职位,薪资都有多高?
  5. 创建MyFilter1类过滤器,对于未登陆用户(如果session对象中包含用户名就认为已登录)进行过滤跳转到登录页面
  6. Oracle count函数原理,oracle count函数
  7. java abs在哪个包,Java StrictMath abs()方法
  8. threejs加载obj模型_倾斜摄影三维模型几种常见的格式,你能说出哪些?
  9. oracle map order,oracle面向对象技术中的map和order方法有何不同?
  10. hive metastore mysql_Hive初步使用、安装MySQL 、Hive配置MetaStore、配置Hive日志《二》...