Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >url怎么传数组

url怎么传数组

作者头像
阿超
发布于 2022-08-16 08:22:29
发布于 2022-08-16 08:22:29
1.7K00
代码可运行
举报
文章被收录于专栏:快乐阿超快乐阿超
运行总次数:0
代码可运行

前两天遇到一个奇葩问题,url怎么传数组参数到后端,后端怎么接收

先申明,一般项目中绝不会这么传。。。

其实很简单,前端转换成JSON进行一次Base64加密,后端进行一次Base64解密再从json转换成对象就可以

前端base64加密解密方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//1.加密  
        var str = '内容';
        var base = new Base64();
        var result = base.encode(str);
        document.write(result);

        //2.解密  
        var result2 = base.decode(result);
        document.write(result2);
        //2.加密、解密算法封装:

        function Base64() {

            // private property  
            _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

            // public method for encoding  
            this.encode = function (input) {
                var output = "";
                var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
                var i = 0;
                input = _utf8_encode(input);
                while (i < input.length) {
                    chr1 = input.charCodeAt(i++);
                    chr2 = input.charCodeAt(i++);
                    chr3 = input.charCodeAt(i++);
                    enc1 = chr1 >> 2;
                    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
                    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
                    enc4 = chr3 & 63;
                    if (isNaN(chr2)) {
                        enc3 = enc4 = 64;
                    } else if (isNaN(chr3)) {
                        enc4 = 64;
                    }
                    output = output +
                        _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
                        _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
                }
                return output;
            }

            // public method for decoding  
            this.decode = function (input) {
                var output = "";
                var chr1, chr2, chr3;
                var enc1, enc2, enc3, enc4;
                var i = 0;
                input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
                while (i < input.length) {
                    enc1 = _keyStr.indexOf(input.charAt(i++));
                    enc2 = _keyStr.indexOf(input.charAt(i++));
                    enc3 = _keyStr.indexOf(input.charAt(i++));
                    enc4 = _keyStr.indexOf(input.charAt(i++));
                    chr1 = (enc1 << 2) | (enc2 >> 4);
                    chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
                    chr3 = ((enc3 & 3) << 6) | enc4;
                    output = output + String.fromCharCode(chr1);
                    if (enc3 != 64) {
                        output = output + String.fromCharCode(chr2);
                    }
                    if (enc4 != 64) {
                        output = output + String.fromCharCode(chr3);
                    }
                }
                output = _utf8_decode(output);
                return output;
            }

            // private method for UTF-8 encoding  
            _utf8_encode = function (string) {
                string = string.replace(/\r\n/g, "\n");
                var utftext = "";
                for (var n = 0; n < string.length; n++) {
                    var c = string.charCodeAt(n);
                    if (c < 128) {
                        utftext += String.fromCharCode(c);
                    } else if ((c > 127) && (c < 2048)) {
                        utftext += String.fromCharCode((c >> 6) | 192);
                        utftext += String.fromCharCode((c & 63) | 128);
                    } else {
                        utftext += String.fromCharCode((c >> 12) | 224);
                        utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                        utftext += String.fromCharCode((c & 63) | 128);
                    }

                }
                return utftext;
            }

            // private method for UTF-8 decoding  
            _utf8_decode = function (utftext) {
                var string = "";
                var i = 0;
                var c = c1 = c2 = 0;
                while (i < utftext.length) {
                    c = utftext.charCodeAt(i);
                    if (c < 128) {
                        string += String.fromCharCode(c);
                        i++;
                    } else if ((c > 191) && (c < 224)) {
                        c2 = utftext.charCodeAt(i + 1);
                        string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                        i += 2;
                    } else {
                        c2 = utftext.charCodeAt(i + 1);
                        c3 = utftext.charCodeAt(i + 2);
                        string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                        i += 3;
                    }
                }
                return string;
            }
        }

javaBase64加密解密

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String str = "内容";
//加密
String encode = new BASE64Encoder().encodeBuffer(str.getBytes());
System.out.println(encode);
//解密
String decode = new String(new BASE64Decoder().decodeBuffer(encode));
System.out.println(decode);

嘿嘿嘿真是so easy

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AJAX通讯加密[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133827.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/26
1.1K0
AJAX通讯加密[通俗易懂]
斗智斗勇的反爬取实践
JSON - https://www.cnblogs.com/lanston1/p/11024147.html
全栈工程师修炼指南
2022/09/28
4610
斗智斗勇的反爬取实践
运营商劫持狠起来,连json都改
运营商劫持,是常见的流氓手段,它们老少通吃,连孩子都不放过,经常嚣张的在右下角或者网页头尾,弹出一些羞羞的广告。这让正在辅导孩子功课的妈妈,很难解释。
xjjdog
2019/10/30
6430
运营商劫持狠起来,连json都改
实现 Base64 的编码解码
Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。由A-Z(26),a-z(26),0-9(10),加+,/,=(3) 其实是 65 个字符(注:等号 = 用来作为后缀用途),如下所示
小皮咖
2020/10/16
1.9K0
实现 Base64 的编码解码
js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
写前端的时候,很多的时候是避免不了注册这一关的,但是一般的注册是没有任何的难度的,无非就是一些简单的获取用户输入的数据,然后进行简单的校验以后调用接口,将数据发送到后端,完成一个简单的注册的流程,那么一般来说,密码是不做加密的。但是也有一些数据库里面存放的是加密后的密码,这样有一个比较安全的地方在于,即使黑客将用户输入的文本密码得到了,也不知道具体是什么,因为密码是经过加密的。
何处锦绣不灰堆
2020/05/29
15.7K0
js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
javascript常用工具类的封装
一、js数组工具类 工具类方法 MyArrayFn包含的方法如下 判断一个元素是否在数组中 遍历元素:相当于原生forEach方法 遍历元素,对里面的每个值做处理再返回一个新的值:相当于原生map方法 数组排序:从小到大、从大到小、随机 去重 求两个集合的并集 求两个集合的交集 删除其中一个元素 最大值 最小值 求和 平均值 工具类代码 // js数组工具类 class MyArrayFn { /*判断一个元素是否在数组中*/ contains(arr, val) { re
不愿意做鱼的小鲸鱼
2022/09/26
1.7K0
javascript常用工具类的封装
base64js typescript代码改写
将市面上的base64方法改写为typescript类 需要的拿走不谢 export class Base64 { // private property private _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; // public method for encoding encode(input) { let output = ''; let chr1
lilugirl
2019/07/02
1.3K0
今天给大家介绍一下SpringBoot框架中URL参数如何进行Base64加密解密
今天给大家介绍一下SpringBoot框架中URL参数如何进行Base64加密解密 首先给大家介绍一下Java中的Base64加密,其实Base64不是真正的加密,只是对字符串进行编码解码而已。主要作
林老师带你学编程
2018/01/04
3.4K0
今天给大家介绍一下SpringBoot框架中URL参数如何进行Base64加密解密
Web前端开发JavaScript提高
JS是基于对象的(Object-Based)脚本语言,而不是面向对象(Object-Oriented)中所使用的那个对象,之所以说JS是一门基于对象的编程语言,是因为它没有提供抽象,继承,封装等面向对象语言的很多功能,而是把其他语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统.
王 瑞
2022/12/28
2.4K0
通过小实例讲解 base64 原理
**字符串转base64的转码规则:第一步,将每三个字节作为一组,一共是24个二进制位。第二步,将这24个二进制位分为四组,每个组有6个二进制位。第三步,在每组前面加两个00,扩展成32个二进制位,即四个字节。第四步,根据上表,得到扩展后的每个字节的对应符号,这就是Base64的编码值。
wade
2021/05/28
9070
通过小实例讲解 base64 原理
小程序使用Base64加密key(秘钥)和iv(偏移量)在进行aes加密,AES加密技术简介与应用。
AES最一种常见的对称加密算法,对称加密算法也就是加密和解密用相同的密钥。 具体的加密流程如下图:
江一铭
2022/06/17
2.2K0
小程序使用Base64加密key(秘钥)和iv(偏移量)在进行aes加密,AES加密技术简介与应用。
Python3强智教务系统个人课表爬虫
之前写过一篇用webdriver爬取教务系统课表的爬虫,用的是selenium自动化的无头浏览器模拟登录,今天带来的是用requests请求实现的爬虫。
HcodeBlogger
2020/07/14
1.3K0
Python3强智教务系统个人课表爬虫
JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64(编码) - Python/JS实现
本文仅仅介绍了常见的一些JS加密,并记录了JS和Python的实现方式 常见的加密算法基本分为这几类: (1)base64编码伪加密 (2)线性散列算法(签名算法)MD5 (3)安全哈希算法 SHAI (4)散列消息鉴别码 HMAC (5)对称性加密算法 AES,DES (6)非对称性加密算法 RSA
EXI-小洲
2022/12/13
4.2K0
JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64(编码) - Python/JS实现
Extjs将GridPanel中的数据导出到Excel的方法
前些时间老大说客户要求提供将表格中的数据导出到Excel中,因为有时候他们需要将价格资料导出以便制作报价表,于是上网找了一些资料,发现网上其实有很多例子都有浏览器兼容性的问题,于是自己整合,改进之后,终于能兼容支持和浏览器了,遂在这里与大家分享、交流:
风柏杨4711
2021/03/15
1.4K0
实战案例浅析JS加密 - DES与Base64
本篇旨在简单总结JS与Python加密的一些例子,文中演示的案例也是面向新手,如果有大佬很碰巧看到这篇文章,欢迎加我交流,咸鱼愿意付费学习。
咸鱼学Python
2019/06/03
3.7K0
实战案例浅析JS加密 - DES与Base64
gojoy参数的生成过程,反调试,以及混淆js
这里我们打开https://passport.gojoy.com/login,进行登陆,打开f12开发者工具,我们会看到这个。有个debugger,自动进入调试。
懒py夏洛
2022/06/01
4780
gojoy参数的生成过程,反调试,以及混淆js
轻松学Pytorch – 构建UNet实现道路裂纹检测
大家好,我又好久没有给大家更新这个系列了,但是我内心一直没有忘记要更新pytorch初学者系列文章,今天给大家分享一下Pytorch如何构建UNet网络并实现模型训练与测试,实现一个道路裂纹检测!
OpenCV学堂
2020/11/16
2.2K0
轻松学Pytorch – 构建UNet实现道路裂纹检测
UzzzzZ
国庆放假期间领导给了一个任务,分析非洲某银行APP,绕过反抓包,并且分析加密算法,能实现自动登录,这也是我第一次分析APP(以前从未接触,也只是看大佬们的文章),所以记录一下
UzJu@菜菜狗
2023/10/20
3580
UzzzzZ
【JS 逆向百例】网洛者反爬练习平台第七题:JSVMPZL 初体验
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请在公众号联系我立即删除!
K哥爬虫
2022/03/29
5170
【JS 逆向百例】网洛者反爬练习平台第七题:JSVMPZL 初体验
JS Base64 3Des加密解密(荐)
    (加密2)首先是经过des加密,然后在经过base64encode进行编码。     相反,(解密2) 先经过base64decode编码之后,在进行des解密。     从而达到你想要的效果。而我却忽略了这一点。(其实我想说的是,顺序、格式很重要)。 PS:如果要跟服务器对接,那么对des加密解密来说,格式根据协议来定的,只需要配置参数即可使用。 更多资料,请查阅:3des算法-js实现
White feathe
2021/12/08
12.4K0
推荐阅读
相关推荐
AJAX通讯加密[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验