js解密(crypto-js)时的坑
场景:生成带参数的外部链接时,需要将参数做成加密串,前端展示链接需要将加密串解析出来,获取参数,解密方法Decrypt会遇到一个坑,加密串作为一个链接url时如果有加号+会被替换成空格,导致解析失败
链接:
解决方法1(有坑不推荐):使用replace()用加号+替换空格还原加密串
let qstr = this.$route.query.code.replace(/\s+/g,'+');
let id = Decrypt(qstr);
此方法的坑:如果加密串有两个或以上连续的空格,只能替换回来一个加号,如下
接收到的加密串:

替换后的加密串(发现只有一个加号)

解决方法2:老老实实写循环找到空格就去替换吧
let codestr = this.$route.query.code;
let qstr = '';
for(let i=0;i
总结:其实这个解密的坑实际是js的replace方法的坑,替换方法应该还有更好的写法,欢迎大佬留言指教
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
