博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
window.btoa 和 window.atob
阅读量:5745 次
发布时间:2019-06-18

本文共 985 字,大约阅读时间需要 3 分钟。

前一段时间被安全部门查出,明文传递密码,被要求整改。

然后就进行了引入了第三方的base64编码的js库,进行了编码然后传递。

其实在前端的加密都是寻求一个心理安慰,作用是微乎其微的,确实也更加好那么一点。

今天在看  无意看到了 btoa和atob。

这不就是内置的base64编码和解码么,那么接下来有两个问题 兼容性和中文的支持情况

 

兼容性

兼容性IE10以上和其他浏览器都支持,还是相对不错的,要是移动端都支持。

借两张 MDN的图片,要是真遇到IE怎么办,引入polyfill库,引入第三方库,或者直接不进行编码。

 

 中文编码

中文编码一直都是程序员要关注的,window.btoa('哎哟不错'),是会抛出异常的。

那么一般的思想都是先借用encodeURIComponent进行base64编码,

然后借用decodeURIComponent进行base64解码。

后看到MDN的备注,

function utf8_to_b64( str ) {    return window.btoa(unescape(encodeURIComponent( str )));}function b64_to_utf8( str ) {    return decodeURIComponent(escape(window.atob( str )));}// Usage:utf8_to_b64(' à la mode'); // "4pyTIMOgIGxhIG1vZGU="b64_to_utf8('4pyTIMOgIGxhIG1vZGU='); // " à la mode"//译者注:在js引擎内部,encodeURIComponent(str)相当于escape(unicodeToUTF8(str))//所以可以推导出unicodeToUTF8(str)等同于unescape(encodeURIComponent(str))

 

 两者的问题都解决了,那么到了引用场景了。

 简单的加密解密,,对于Html5 Api中出现的如FileReader Api, 拖拽上传,甚至是Canvas,Video截图都可以实现。

 

URL.createObjectURL也可以生成base64格式的东西,关键在于性能,借用别人的截图。这说明个啥,能用btoa的地方优先喽。

 

 

 

阴影:

转载地址:http://emazx.baihongyu.com/

你可能感兴趣的文章
hotmail解码遇到的&#解码问题
查看>>
Postgresql pg_restore
查看>>
架构师速成-架构的目标
查看>>
cocos2dx 3.0打包android遇到的错误(持续更新)
查看>>
hdu oj 3371 Connect the Cities (最小生成树)
查看>>
OC的动态继承编译机制
查看>>
20_分钟构建你自己的_Linux_发行版
查看>>
VUE-1
查看>>
VS2008简体中文正式版迅雷高速下载 Visual Studio 2008 Team Suite
查看>>
【4】python函数基础
查看>>
iOS笔记【UIAlertCotroller】 2017-09-06
查看>>
前端懒加载以及预加载
查看>>
中科院广州地化所笔试
查看>>
LeetCode-18-4 Sum
查看>>
root密码忘记后如何修改
查看>>
CSS 子元素选择器
查看>>
OAthe2 Login use OkHttpClient and OAuth2RestTemplate
查看>>
Android用ImageView显示本地和网上的图片
查看>>
ubuntu14安装
查看>>
NOIP2010 引水入城 题解
查看>>