js对url进行base64加密解密
原文链接:https://dsx2016.com/?p=972
微信公众号:大师兄2016
无论是传递给后台url
地址,还是前端复制链接和分享链接.
都需要对url
进行处理,避免一些特殊符号等格式造成加载错误等
base64
url
要处理的一般包括中文,+,#等特殊字符,以及回调地址等
在这里使用的是base64
编码,使用的为github
的第三方库js-base64
参考地址:
https://github.com/dankogai/js-base64
首先要明确的是,这个base64
库可以过滤中文,但是加密结果依旧含有特殊符号,所以仍然需要单独对特殊符号进行处理.
过滤中文参考官方demo
加密
Base64.encode('dankogai'); // ZGFua29nYWk=
Base64.encode('小飼弾'); // 5bCP6aO85by+
Base64.encodeURI('小飼弾'); // 5bCP6aO85by-
解密
Base64.decode('ZGFua29nYWk='); // dankogai
Base64.decode('5bCP6aO85by+'); // 小飼弾
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode('5bCP6aO85by-'); // 小飼弾
特殊符号
作为url
参数主要需要过滤base64
高频且影响加载的内容,核心有以下8种
把特殊符号替换为16进制
+ | 空格 | / | ? | % | & | = | # |
---|---|---|---|---|---|---|---|
%2B
|
%20
|
%2F
|
%3F
|
%25
|
%26
|
&3D
|
%23
|
进行base64
编码后,在使用js
过滤,参考代码如下
// 加密url
import { Base64 } from 'js-base64';
let urlStr=Base64.encodeURI(url)
// 过滤特殊符号
urlStr = urlStr.replace(/\+/g, "%2B");
urlStr = urlStr.replace(/\=/g, "&3D");
urlStr = urlStr.replace(/\&/g, "%26");
urlStr = urlStr.replace(/\//g, "%2F");
urlStr = urlStr.replace(/\#/g, "%%23");
urlStr = urlStr.replace(/\?/g, "%3F");
urlStr=urlStr.replace(/\s/g,"%20");
urlStr = urlStr.replace(/\%/g, "%25");
解密
使用base64
的decode
注意decode
可以解密encode
和encodeURI
两种
let url=Base64.decode(urlStr)
注意事项
使用encode
会可能产生以下乱码,建议对url
使用encodeURI
加密
浏览器报错信息如下(其是就是base64
加密解密除了问题,以及乱码)
Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded error
js对url进行base64加密解密相关推荐
- js 对 URL 参数进行 加密 解密
2019独角兽企业重金招聘Python工程师标准>>> 1.我从这个页面 ,通过以下URL跳转到另一个页面,把参数加密,下面对参数 aid=970 进行加密 var aid=9 ...
- js怎么实现对html代码加密解密,JS实现Base64加密解密
JavaScript实现Base64加密解密.Base64与其说是加密算法不如说是方便数据传输而生的数据转换手段. 测试代码:html> test .resource_enc, .resourc ...
- 在线BASE64加密解密、UrlEncode编码/解码、native/ascii在线转换工具 -toolfk程序员工具网
本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...
- JS基于编码方式实现加密解密文本
JS基于编码方式实现加密解密文本 严格来讲这是一种简单的编码方式:加密,将明文[注]转成编码.解密则是编码转码为明文本. [注:明文是指没有加密的文字(或者字符串),一般人都能看懂.] 下面源码用到 ...
- javascript base64加密解密
javascript base64加密解密 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8&q ...
- asp php base64 加密解密,base64加密解密_php base64_decode 解码方法
base64加密解密_php base64_decode 解码方法 观点1: php实现base64加密解密 在PHP中我们可以直接使用PHP自带的函数 base64_encode() 和 base6 ...
- base64 加密解密
js实现base64加密解密(适用于中文) //1.加密解密方法使用://1.加密 var str = '124中文内容'; var base = new Base64(); var result = ...
- js脚本锁计算机软件,JS使用插件cryptojs进行加密解密数据实例
本文实例讲述了JS使用插件cryptojs进行加密解密数据.分享给大家供大家参考,具体如下: Testing websockets var key = 'BOTWAVEE'; //CBC模式加密 fu ...
- chrome 控制台 base64加密解密
1.视界 2. 背景 因为在客户机器,要查询base64的解密信息,但是因为内网无法使用网络,只能拷贝软件本想查询插件,后来发现谷歌支持解密 3.方法 在chrome控制台上可以直接使用函数做base ...
最新文章
- 服务器开设虚拟主机,服务器自动开设虚拟主机
- 共享可写节包含重定位_今年双11好房也打折!贝壳兰州站“11.11新房节” 5日开启...
- jquery-事件绑定
- 如何用C语言测试,C语言单元测试CMock使用(一) 基本用法
- 分析国内App推广渠道和方法
- ZooKeeper典型应用场景
- cdr三角形转化为圆角_cdr怎么把直角变成圆角
- C#使用欧姆龙PLC的Fins协议读写PLC地址(基本封装)
- UE4 横板过关 启用WS前后移动且镜头固定
- 电脑共享文件打不开要如何解决
- 有点先生和差不多女士
- 黑马头条从登陆页到个人中心页
- Unity3D——第一人称FPS生存游戏(resident zombies)
- 学习篇之华为快应用的开发(一)
- 第二届同花顺算法大赛 | 2022 | AI算法
- 一、虚拟化技术发展概述
- js中的事件对象event (获取元素的,x,y坐标)
- 卡塞格林光学系统_卡塞格林系统光学装调技术研究
- 专题:什么是MD5?
- swal 美化弹出框