原文链接: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");

解密

使用base64decode

注意decode可以解密encodeencodeURI两种

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加密解密相关推荐

  1. js 对 URL 参数进行 加密 解密

    2019独角兽企业重金招聘Python工程师标准>>> 1.我从这个页面 ,通过以下URL跳转到另一个页面,把参数加密,下面对参数   aid=970  进行加密 var aid=9 ...

  2. js怎么实现对html代码加密解密,JS实现Base64加密解密

    JavaScript实现Base64加密解密.Base64与其说是加密算法不如说是方便数据传输而生的数据转换手段. 测试代码:html> test .resource_enc, .resourc ...

  3. 在线BASE64加密解密、UrlEncode编码/解码、native/ascii在线转换工具 -toolfk程序员工具网

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  4. JS基于编码方式实现加密解密文本

    JS基于编码方式实现加密解密文本 严格来讲这是一种简单的编码方式:加密,将明文[注]转成编码.解密则是编码转码为明文本. [注:明文是指没有加密的文字(或者字符串),一般人都能看懂.] 下面源码用到 ...

  5. javascript base64加密解密

    javascript base64加密解密 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8&q ...

  6. asp php base64 加密解密,base64加密解密_php base64_decode 解码方法

    base64加密解密_php base64_decode 解码方法 观点1: php实现base64加密解密 在PHP中我们可以直接使用PHP自带的函数 base64_encode() 和 base6 ...

  7. base64 加密解密

    js实现base64加密解密(适用于中文) //1.加密解密方法使用://1.加密 var str = '124中文内容'; var base = new Base64(); var result = ...

  8. js脚本锁计算机软件,JS使用插件cryptojs进行加密解密数据实例

    本文实例讲述了JS使用插件cryptojs进行加密解密数据.分享给大家供大家参考,具体如下: Testing websockets var key = 'BOTWAVEE'; //CBC模式加密 fu ...

  9. chrome 控制台 base64加密解密

    1.视界 2. 背景 因为在客户机器,要查询base64的解密信息,但是因为内网无法使用网络,只能拷贝软件本想查询插件,后来发现谷歌支持解密 3.方法 在chrome控制台上可以直接使用函数做base ...

最新文章

  1. 服务器开设虚拟主机,服务器自动开设虚拟主机
  2. 共享可写节包含重定位_今年双11好房也打折!贝壳兰州站“11.11新房节” 5日开启...
  3. jquery-事件绑定
  4. 如何用C语言测试,C语言单元测试CMock使用(一) 基本用法
  5. 分析国内App推广渠道和方法
  6. ZooKeeper典型应用场景
  7. cdr三角形转化为圆角_cdr怎么把直角变成圆角
  8. C#使用欧姆龙PLC的Fins协议读写PLC地址(基本封装)
  9. UE4 横板过关 启用WS前后移动且镜头固定
  10. 电脑共享文件打不开要如何解决
  11. 有点先生和差不多女士
  12. 黑马头条从登陆页到个人中心页
  13. Unity3D——第一人称FPS生存游戏(resident zombies)
  14. 学习篇之华为快应用的开发(一)
  15. 第二届同花顺算法大赛 | 2022 | AI算法
  16. 一、虚拟化技术发展概述
  17. js中的事件对象event (获取元素的,x,y坐标)
  18. 卡塞格林光学系统_卡塞格林系统光学装调技术研究
  19. 专题:什么是MD5?
  20. swal 美化弹出框

热门文章

  1. 政府网站群建设的核心内容
  2. Java GC、Tread Dump性能分析与调优
  3. ABAQUS2020+Fotran2021+VisualStudio2019设置关联
  4. el-upload 文件上传一次再次上传无反应
  5. C语言数组的结尾字符
  6. vue使用nprogress(进度条)
  7. Progress事件
  8. 邓宏、李程课题组在体外构建了具有损伤再生特征的新型小肠类器官
  9. 【技巧】Microsoft Edge 调节视频播放速度的方法
  10. 免开发 | 轻松打造智能恒温散热器阀