URL编码和base64

news/2025/3/29 19:26:29/文章来源:https://www.cnblogs.com/tanglx/p/18794049

目录
  • 一、URL编码
  • 二、Base64
  • 三、URL编码 vs Base64 对比表
  • 四、关键区别总结

一、URL编码

URL编码是一种将URL中的非ASCII字符或特殊符号转换为 %XX 格式的技术(XX为十六进制值)。其核心规则包括:

  • 空格可转为 +%20
  • 特殊字符(如 ?, #, & 等)需转为 % + 十六进制ASCII码;
  • 仅允许保留字符(如字母、数字、-, _, ., ~)不编码。

示例
http://example.com/你好?name=张三http://example.com/%E4%BD%A0%E5%A5%BD?name=%E5%BC%A0%E4%B8%89

应用场景
URL参数、表单提交、路径中的特殊字符处理。

二、Base64

Base64是一种将二进制数据转换为可打印ASCII字符(A-Z, a-z, 0-9, +, /)的编码方式。其核心规则包括:

  • 每3字节(24位)拆分为4组6位,映射到字符集;
  • 不足时用 = 填充。

示例
中文“你好” → 5L2g5aW9
二进制 00000001AQ==

应用场景
邮件附件、网页嵌入图片、API传输二进制数据、加密预处理。

工具函数

  • JavaScript: btoa() / atob()
  • Python: base64.b64encode() / base64.b64decode()

三、URL编码 vs Base64 对比表

特性 URL编码 Base64
用途 URL中特殊字符转义(如 ?, # 二进制数据转文本(如图片、文件)
字符集 % + 十六进制值(如 %20 代表空格) A-Za-z0-9+/=
可逆性 完全可逆 完全可逆
填充符 有(=
数据长度 可能增加(如汉字转为3字节 %XX%XX%XX 增加约33%(4字符 → 3字节)
加密性 非加密(仅编码) 非加密(仅编码)
常见场景 URL参数、路径 邮件附件、图片嵌入、API数据传输
URL安全变体 有(- 替代 +_ 替代 /

四、关键区别总结

  1. 目标场景

    • URL编码用于确保URL本身的合法性(如保留字符)。
  2. 字符处理

    • URL编码直接替换特殊字符(如 ?%3F)。
    • Base64将所有数据转换为字符集映射(如 00000001AQ==)。
  3. 可逆性与安全性

    • 两者均为编码而非加密,敏感数据需额外加密处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906220.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ核心架构

Producer:负责产生消息。 Connection:RabbitMQ客户端和代理服务器之间的TCP连接。 Channel:建立在连接之上的虚拟连接,RabbitMQ操作都是在信道中进行。 Broker:一个Broker可以看做一个RabbitMQ服务节点或者服务实例。 Exchange:生产者发送消息到交换器,交换器根据路由ke…

024 登录页-main退出登录功能的实现

这个页面这样写一、 用于创建一个按钮并绑定一个点击事件处理函数。以下是对这段代码的详细解释:<button> 标签:这是 HTML 中的按钮元素,用于在页面上显示一个可点击的按钮。@click 指令:在 Vue.js 中,@click 是一个事件绑定指令,它用于监听按钮的点击事件。@ 是 …

ProfiNet转Modbus TCP协议转换网关驱动三菱PLC与伺服的毫秒级动态参数同步

一、案例背景 在“双碳”战略推动下,新能源锂电池行业迎来爆发式增长。某新能源科技公司新建的锂电池生产线中,涂布工序作为核心环节,采用了德国博世力士乐IndraDriveCX系列伺服驱动器(ProfiNet从站)实现高精度张力控制,而车间级监控系统选用三菱L系列PLC(ModbusTCP主站…

MySQL-面经

目录 MVCC概念?如何实现? 可重复读概念 可重复读下,快照是在什么时候生成的,是事务启动时,还是语句执行前 可重复读下,执行两个select语句,会生成几个快照?MVCC概念?如何实现? MVCC概念:通过「版本链」来控制并发事务访问同一个记录时的行为就叫 MVCC(多版本并发控制…

算法备案五大真相

一些开发者已经了解到算法备案是AI类产品必做的一项资质了,但因为经验有限,依然存在一些盲点和不清楚的地方。今天,我就整理出了最基础但也最重要的五大算法备案真相,供大家参考。如有其它疑问,欢迎进一步咨询算法备案办理问题。一、流程统一,审核不统一 算法备案有全国统…

Cknife配置

项目地址 https://github.com/Chora10/Cknife 使用Java编译器 这里使用eclipse 1. File->Open Project from File System...选择目录,点击完成2. 在刚添加的项目上按右键,并点击导出Export选择可运行的jar文件选择路径3. 这里没有选择或没有配置有效的“Launch configurat…

医疗场景实战:百条数据 RFT 微调盘古大模型,精度大幅提升

摘要:RFT强化微调是一种新型LLM微调方法,通过强化学习与传统微调结合,少量数据即可显著增强领域场景的模型能力。本文分享自华为云社区《医疗场景实战|百条数据RFT微调盘古大模型,效果超越DS》,作者:盘古大模型官方账号。 医疗场景实战|百条数据RFT微调盘古大模型,效果超…

SQL Server 启用 sa

Hello World ‍‍ ‍‍‍‍‍

一文看懂大数据生态圈完整知识体系

随着大数据行业的发展,大数据生态圈中相关的技术也在一直迭代进步,希望能通过本文帮助大家快速构建大数据生态圈的完整知识体系。 目前大数据生态圈中的核心技术总结下来如图1所示,分为以下9类,下面分别介绍。大数据生态下9类核心技术 01 数据采集技术框架 数据采集也被称为…

神秘另解集合,想出来一样的东西这辈子有了

P1600 考虑重链剖分。然后把每个路径给变成 \(O(\log n)\) 个重链,根据重链剖分的性质,每条重链的 dfs 序都为连续,所以把图画出来大概是像下图这样:横轴是时间,纵轴是 dfs 序。一个时间 \(t\) 在节点 \(p\) 的人数就是经过 \((t,\text{dfn}_p)\) 的线段数量。线段数量为 …

功率器件热设计基础(十三)——使用热系数Ψth(j-top)获取结温信息

功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础,只有掌握功率半导体的热设计基础知识,才能完成精确热设计,提高功率器件的利用率,降低系统成本,并保证系统的可靠性。。。**前言 ** 功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础,只有掌握功率半导体的…

Nmap学习笔记

Nmap学习笔记 九步:Enumerate targets 列出目标 Discover live hosts 发现活动主机 Reverse-DNS lookup 反向 DNS 查询 Scan Ports 端口扫描 Detect versions 版本侦测 Detect OS 系统侦测 Traceroute 路由追踪 Scripts 脚本 Write output 输出Nmap Live Host Discovery---存…