【动画密码学】Base16(Hex)编码&解码算法
算法简介
本篇文章依然是一个旧瓶装新酒,换汤不换药的文章,之前写过有关于Base系列的编解码过程的文章,然后这次咱们还是用动画来演示一下这个过程,先简单介绍一下什么是Base16编码。
Base16采用了US-ASCII 的 16 个字符子集,由于因此,对于Base16编码是每4个比特一组,我们知道,正常一个字节是8个比特,恰好可以被分成两组,因此对于Base16来说是不需要进行padding的,而由于这个是一个字节变成了两个编码字符,因此采用Base16编码之后,相比于原来的数据,体积会变为原来的两倍。
算法过程
Base16也需要一个索引表,具体索引表如下:
编码方案
编码过程当中,一个字节一组进行编码,前面四个字节的值取一下码表,后面四个字节的值取一下码表,如下图所示:
解码过程
对于解码过程,其实和编码过程相反,只不过用的索引表不同,一图胜千言,还是直接来看图吧。
总结
对于base16来说,整体过程还是比较简单的,因此本文是一如既往的短,这就来水一篇文章,溜了。
参考资料
-
https://datatracker.ietf.org/doc/html/rfc4648#page-10[1]
Reference
https://datatracker.ietf.org/doc/html/rfc4648#page-10: https://datatracker.ietf.org/doc/html/rfc4648#page-10
原文始发于微信公众号(Coder小Q):【动画密码学】Base16(Hex)编码&解码算法
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论