字符串加密解密的处理

前端开发,URL带中文或者特殊字符的参数,如果项目里面的路由跳转不是像现在的react或者vue可以采用已经封装好的params或者query方式传值,而是使用ext框架搭的,然后跳转时自己写的splice方法来分割,这就有一些问题来,比如参数里面本身就含有‘* )'&:‘等等这些特殊的字符串,你会发现采用单一的js加密解密就是会有缺陷,譬如下图有一个项目名词使用特殊字符:如下:


image.png

然后我们查看详情的时候要带上这个参数
然后我们跳转的时候就采用加密方式得到如下


image.png

先说一下网上查到的几中加密解密的方式以及这些方法存在的局限性

方法1

encodeURI、encodeURIComponent、decodeURI、decodeURIComponent
虽然说这个是用来编码解码URL的但是URL也是字符串,具体详情可参考这篇文章,文章中讲到这几个方法里面的保留字的问题,我们使用的话也会发现,确实对我上面说的那些特殊字符不起作用,因为是保留字啊,呵呵没办法的,可参考
https://www.cnblogs.com/shuiyi/p/5277233.html

方法2

javascript 的escape()和unescape()
呃反正就是baba讲了很多但是特殊字符的处理也还是有一些问题,可参考
https://wenku.baidu.com/view/f23d7b26fad6195f302ba600.html

方法3

base64的加密解密,反正找不出方法了,我们后台大佬就说了你用base64吧,大佬的话肯定要听啊,虽然我只是一个前端,所以就网上找了这个文章来参考
http://www.cnblogs.com/hjbky/p/9555637.html
但是发现还是有特殊字符处理不了
哇塞。哦买噶,李佳琦哦买噶,我要疯了,然后就想了一下,既然每一种方式都可以针对不同的特殊字符转译,那么要不多重加密再解密,于是乎就先用base64加密再用escape()加密,unescape()和base64来解密
呵呵实验来一下真好特殊字符的都可以,只不过对比了一下react的query的传值加密方式,emmm在浏览器里面显示的还是不太一样,但是也不失为一种比较好的方法吧,好吧就这样子咯,下次见招拆招,哦 my god~

你可能感兴趣的:(字符串加密解密的处理)