hex(base16)、base32、base64三种编码方式区别
个人blog-1: 拾忆生活
个人blog-2: 极简-拾忆生活
欢迎大家来踩,同步更新
总体:
hex编码不区分大小写,base32与base64编码区分大小写
三种都是稳定的把二进制数组变成可见字符的编码方式
hex(=base16)
1.使用16个可见字符来表示一个二进制数组,编码后数据大小将x2
2.1个字符需要用2个可见字符来表示
base32
1.使用32个可见字符来表示一个二进制数组,编码后数据大小变成原来的8/5
2.5个字符用8个可见字符表示,不足8个字符,将用=来补充
base64
1.使用64个可见字符来表示一个二进制数组,编码后数据大小变成原来的4/3
2.3个字符用4个可见字符来表示
测试:
@Test
public void test(){String data = "测试编码内容" ;byte[] bytes = data.getBytes() ;//测试hextry {long start = System.currentTimeMillis() ;String encryStr = "" ;String decryStr = "" ;for(int i= 0 ; i < 10000 ; i++) {encryStr = Hex.encodeHexString(bytes) ;decryStr = new String(Hex.decodeHex(encryStr.toCharArray())) ;}print("Hex:" + (System.currentTimeMillis() - start ) + " ms " + encryStr + " | " + decryStr) ;} catch (Exception e) {e.printStackTrace();}//测试base64try {long start = System.currentTimeMillis() ;String encryStr = "" ;String decryStr = "" ;for(int i= 0 ; i < 10000 ; i++) {encryStr = Base64.encodeBase64String(bytes) ;decryStr = new String(Base64.decodeBase64(encryStr.getBytes()) );}print("base64: " + (System.currentTimeMillis() - start ) + " ms " + encryStr + " | " + decryStr) ;} catch (Exception e) {e.printStackTrace();}}
结论:
hex编码速度快,体积大;base64编码速度慢,体积小
hex(base16)、base32、base64三种编码方式区别相关推荐
- verilog中状态机的三种编码方式的比较(二进制码、独热码、格雷码)
最近做了一个小项目,是关于状态机中三种编码方式的比较,总结了一下三种编码方式的不同,可以会在以后IC笔试面试过程中用到,简单记录一下三种编码方式的优缺点. 三种编码方式如下图所示:其中独热码只有一位为 ...
- 【GBK、UTF-8、ISO8859-1】三种编码方式总结及实例
感谢:https://blog.csdn.net/youngstar70/article/details/64117297 一.总结 在Java中,String的getBytes()方法是得到一个操作 ...
- 笔记连载 | Day6 FPGA三种建模方式区别及Verilog语法基础篇
听说99%的同学都来这里充电吖 本系列为线下学员学习笔记整理分享,如有想要报名参加线下培训,可以点击以下超链接文章了解,购买开发板可以到叁芯智能科技企业淘宝店下单. 各类研修班 | FPGA就业研修班 ...
- ISP、IAP、ICP、JTAG、SWD的编程特点!种编程方式区别总结
转载自:http://www.eeskill.com/article/id/38434 http://bbs.ic37.com/bbsview-33838.htm 电子工程师都知道,半导体技术发展迅猛 ...
- python:Base16, Base32, Base64, Base85 数据编码
python:Base16, Base32, Base64, Base85 数据编码 此模块提供了将二进制数据编码为可打印的 ASCII 字符以及将这种编码格式解码回二进制数据的函数. 它为 RFC ...
- WebSocket不同版本的三种握手方式以及一个Netty实现JAVA类
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一.We ...
- windows四种编码方式
简单介绍一下这四种编码方式: ANSI:系统预设的标准文字储存格式.ANSI是American National Standards Institute的缩写.它成立于1918年,是一个自愿性的组织, ...
- Kryo,Hessain,Protostuff三种序列化方式对比
前言 前段时间在写RPC框架的时候用到了Kryo.Hessian.Protostuff三种序列化方式.但是当时因为急于实现功能,就只是简单的的看了一下如何使用这三种序列化方式,并没有去深入研究各自的特 ...
- Python对文件的三种打开方式以及with管理上下文
文件的三种打开方式以及with管理上下文 一.文件的三种打开方式 1.1 只读 f = open(r'D:\pycharm\python\123.txt','r',encoding='utf8') d ...
- Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
阅读目录 一.MVC与MTV 二.多对多表的创建 三.ajax,前后端传输编码格式contentType 四.批量插入数据与自定义分页器 摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端 ...
最新文章
- mysql 配置路径
- python xpath语法-Python爬虫基础之XPath语法与lxml库的用法详解
- 膜拜大牛!HTTPS面试常问全解析,吊打面试官系列!
- [vim] vim中使用cscope的安装与使用
- 轻量级锁_并发编程实战05:锁的状态
- 7 种分布式全局 ID 生成策略,你更爱哪种?
- emif接口速率问题_OMAPL138 EMIF读取速率问题
- Git的下载与安装(详细)
- Ubuntu18.04之apt/dpkg用法
- threadpool —— 基于 pthread 实现的简单线程池(code)
- ctf镜子里面的世界_在秋天遇见“冰雪世界”,好像老天给我变了个魔法
- 在linux系统下如何下载中文输入法,如何在linux系统下安装中文输入法
- Android 屏蔽Menu键
- 华为HCNE—网络工程师培训教材
- html 按钮按下变色松开还原,js中怎么写点击按钮时变色,松开后恢复原来的颜色...
- 【案例】电影数据分析
- Vim快捷键学习---记性不行了,留这里备查
- IDEA系列:最新IntelliJ IDEA下载地址(社区版和专业版)
- 哪看计算机的网络密码,如何检查计算机的无线网络密码?两种查看方法
- 如何理解关联法则中的三个判断准则