ce安全网绿色资源分享

教程资讯|常用软件|安卓下载|下载排行|最近更新

软件
软件
文章
当前位置:首页网络安全安全文章 → 快速的base64编码和解码

快速的base64编码和解码

时间:2018-01-18 11:52:10人气:作者:本站作者我要评论

快速的base64编码和解码

计算机将数据存储为位流。像图像,音频或视频文件这样的二进制文件只允许包含任何比特序列。
但是,我们也经常使用文本格式; 例如,网页和电子邮件必须是文本。那么我们如何通过电子邮件发送图片?我们如何在网页中嵌入图像?一种可能性是指向一个独特的二进制文件。另一种常见的方法是直接在网页或电子邮件中使用base64嵌入二进制数据。Base64只是一个标准的文本格式,可以用来编码任何二进制输入。准确地说,base64代码总是一个有效的ASCII文本(因此它也是有效的UTF-8)。base64代码的每个字节包含6位数据。因此我们“浪费”每字节大约2位。因此,二进制文件的base64相当于大约33%。在实践中,这种规模的增长很少成为人们关注的问题。据我所知,电子邮件附件几乎总是被编码为base64。
在编写HTML时,我发现使用数据URI直接在HTML中编码图像非常方便。例如,在最近的一篇文章中,我在我的HTML代码中包含了一个PNG文件。Google等主要网站一直使用数据URI。它有一个小的缺点,即网页更大(显然),他们不能从图像缓存中受益。好的,你可以保存浏览器一个单独的网络请求。
如果您是Web开发人员,则可以使用Web Storage为应用程序创建客户端数据库。这个客户端数据库可以包含图像和任意数据,但是它必须全部是base64编码的。

大多数数据库引擎都支持二进制数据,但有些需要在某些时候将其编码为base64:MongoDB,Elasticsearch,Amazon SimpleDB和Amazon DynamoDB。我可能会缺少一些。
Base64通常用于密码学交换密钥。base64的一种形式也被用来传递任意数据作为URI的一部分。
值得庆幸的是,base64的编码和解码速度很快。但有些情况可能会成为问题。Matt Crane和Jimmy Lin发现在Amazon DynamoDB中解码来自base64的二进制属性很慢。
你能以多快的速度解码base64数据?在最近的英特尔处理器上,当使用像Chrome浏览器那样的快速解码器时,每个字节(从缓存)需要大约2个周期。这个快速解码器基本上是在查表。这比在缓存中复制数据慢得多(每个字节花费少于0.05个周期)。
这是你能做的最好的吗?
Alfred Klomp几年前就表示,使用矢量指令你可以做得更好。WojciechMuła,我和其他一些人(即Howard和Kurz)决定认真回顾这个问题。Muła有关于这个话题的网页。

最后我们发现,在最近使用向量指令的英特尔处理器上,最终可以将问题加速10倍,并且每个字节使用大约0.2个周期。这不仅仅是一个副本,更不可能是一个瓶颈。我应该指出,这个每个字节0.2个周期包括错误处理:解码器必须对输入进行解码和验证(例如,如果发现非法字符,解码应该中止)。
我们的研究代码是可用的,所以你可以重现我们的结果。我们的论文可从arXiv获得,并已被ACM交易网站接受发表。

相关文章

猜你喜欢

  • 深入解析浅谈《快3单双准确率方法》成功方案

    2022-09-28 /

  • 全网首发《快3单双大小必中方法技巧》思路汇总

    2022-09-28 /

  • 资深攻略《快3大小必中技巧》上岸方法

    2022-09-28 /

  • 【最准确的玩法】《回血上岸计划导师QQ》操作系列

    2022-09-28 /

  • 经验教程《导师一分快三计划》最新窍门

    2022-09-28 /

  • 高手教你《大小单双最安全的打法》三期必中

    2022-09-28 /

网友评论

验证码:

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论

已有人参与,点击查看更多精彩评论

本类推荐

关于CE安全网 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2029 cesafe.com 【CE安全网】 版权所有 琼ICP备2021004244号-1| 琼ICP备2021004244号-1

声明: 本站为非赢利性网站 不接受任何赞助和广告 所有软件和文章来自互联网 如有异议 请与本站联系 技术支持:ce安全网