您的位置:首页 > Web前端 > JavaScript

其它基本扩展->URLs->base64加密

2016-10-18 12:30 183 查看
其它基本扩展->URLs->base64加密,这篇找了点资料,来记录下base64:

先复制一个base64编码表:

码值字符 码值字符 码值字符 码值字符
0A16Q32g48w
1B17R33h49x
2C18S34i50y
3D19T35j51z
4E20U36k520
5F21V37l531
6G22W38m542
7H23X39n553
8I24Y40o564
9J25Z41p575
10K26a42q586
11L27b43r597
12M28c44s608
13N29d45t619
14O30e46u62+
15P31f47v63/
为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。
Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。
64位可读的字符,52个英文+10个数字+'+'+'/',所以,我们完全都可以按照这个规则,重新定义64位的编码对照表,原理就是一一对应替换。
让我解释这些编码啥的,我只能大概理解了,但是要说出来,有点难,参照转载博客:


base64

从原理上搞定Base64编码

现在开始手册的base64_encode()函数:

base64_encode(string $data)

使用base64对数据进行编码。设计这种编码是为了使二进制数据可以通过非纯8-bit的传输层传输,例如:电子邮件的主题。

base64_encode(),当然可以用作简单的编码或加密,对付一些不懂技术的,他们看不懂。如果查看了上面,应该也知道了:用于加密是不现实的,那就主要是用于数据传输。常用于URL,cookie,网页中少量二进制数据传输。

想说base64的目的是:用于图片展示,接触了一些项目的新手,可能见过。

<img src="">

background-image:url()

这2个东西,不仅支持url,还支持一种 Data URL格式,图片就可利用data url,但需要base64_encode(),例如:

data:image/jpeg;base64,/9j/4QqsRX...

我算是个引路人,让比我更新的小白,知道这个东西的存在,然后自己去找资料,分享几个地址:


data类型的Url格式:把小数据直接嵌入到Url中

 


Data URL和图片

考虑到图片这种访问方式,不知道怎么就联想到了,目前前端的 "上传前先预览"。在几年前应该还是不行的,javascript不允许操作文件,所以获取不到,必须等到图片真实的上传到服务器上,才能展示,所以我知道的做法就是:嵌入iframe,然后图片上传表单提交给iframe,再显示预览图片。这种各种缺点。

技术小白,对于服务器各种头部信息也不懂,ajax的原理啊,具体传输的是什么东西也不懂,看有没有和base64这种编码有没有关系以及javascript提供的更底层的接口API,就上网查了查,参照这篇博客:


js实现图片上传预览原理

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息