首页
学习
活动
专区
工具
TVP
发布

Web开发者应该掌握的编码和解码知识

本文会介绍一些Web开发常用的编码和解码方法,这些知识点在日常开发中会经常用到,非常实用。

什么是编码和解码?

编码是一种将数据转换成其他格式的技术,以便不同的系统可以使用它。例如,如果您想通过电子邮件发送二进制数据,应该使用某种编码方案对二进制数据进行编码,使其适合通过电子邮件发送。

编码并不能保证数据的私密性,而只是确保数据可以被正确地传输和使用。

l 与哈希不同,编码后的数据实际上可以通过解码还原成原始形式。

l 与加密不同,在对数据进行编码的过程中不涉及密钥,而且编码的目的也不是保证数据的机密性

我们为什么需要编码和解码?

数据在网络上传输和处理时,实际上要经过许多不同的设备,不同设备上的系统对于数据处理存在差异性,可能会造成数据传输和处理的失败。例如在浏览器中通过URL发送参数时,必须确保把不可打印的字符或者具有特殊含义的字符翻译为消除歧义的表现形式,以便能被浏览器和服务器正确处理。

此外,页面在浏览器中时执行时,如果含有未编码的可执行的代码,可能对网站访客产生安全问题。

常用的编码方式

Base64编码

Base64方案将二进制数据转换为base64表示形式,以ASCII字符串格式表示二进制数据。这基本上意味着所有字符(ASCII、UTF8、UTF16…)都可以映射到英文字母a-z、A-Z、0-9,+,/和=。你可以在屏幕上阅读它们,或者打印出来。

使用base64编码和解码JavaScript字符串:

URL编码

URL编码是指把网址中的不可打印字符或者特殊字符翻译为服务器和浏览器能识别的字符。

把数据发送至服务器之前,或者从URL参数中读取参数时,我们经常会用到编码/解码的操作。

HTML编码/转义

在HTML中,有少数几个特殊字符,如和"。使用这些字符时,让浏览器知道是想要按原样展示还是处理它们,这一点非常重要。HTML转义是指对这些特殊字符进行编码,以便浏览器直接原样展示而不是处理它们。这是应对脚本注入攻击非常重要的措施。

现在主流的前端开发框架都提供了HTML编码功能,如果你没有用那些框架,也可以简单地编写如下代码实现同样的效果:

ROT13

ROT13(回转13位,有时中间加了个连字符称作ROT-13)是一种简易的替换式密码。它只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。

要还原ROT13,套用加密同样的算法即可得,故同样的操作可用再加密与解密。该算法并没有提供真正的密码学上的安全,所以不应该应用在需要加密的用途上。

要在JavaScript中应用ROT13,可以参考如下代码:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200624A0LNH200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券