加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

一文搞懂Web中暗藏的密码学

发布时间:2019-11-14 10:37:08 所属栏目:建站 来源:前端劝退师
导读:副标题#e# 【线上直播】11月21日晚8点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》 前言 开发网站登录功能时,如何保证密码在传输过程/储存的安全? 相信不少前后端的朋友,在面试时都会被问到类似的问题。 在我对密码学一无所知时,也仅会回答:MD5

在HTML中,需要对数据进行HTML编码以遵守所需的HTML字符格式。转义避免 XSS 攻击也是如此。

一文搞懂Web中暗藏的密码学

4.3 Base64/32/16编码

base64、base32、base16可以分别编码转化 8 位字节为 6 位、5 位、4 位。

16,32,64 分别表示用多少个字符来编码,

Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的email,email via MIME,在XML中存储复杂数据。

编码原理:

Base64编码要求把 3 个 8 位字节转化为 4 个 6 位的字节

之后在 6 位的前面补两个 0,形成 8 位一个字节的形式

6 位 2 进制能表示的最大数是 2 的 6 次方是 64,这也是为什么是 64 个字符的原因

A-Z,a-z,0-9,+,/这 64 个编码字符,=号不属于编码字符,而是填充字符

Base64映射表,如下:

一文搞懂Web中暗藏的密码学

举个栗子:

一文搞懂Web中暗藏的密码学

  • 第一步:“M”、“a”、"n"对应的ASCII码值分别为 77,97,110,对应的二进制值是01001101、01100001、01101110。如图第二三行所示,由此组成一个 24 位的二进制字符串。
  • 第二步:如图红色框,将 24 位每 6 位二进制位一组分成四组。
  • 第三步:在上面每一组前面补两个 0,扩展成 32 个二进制位,此时变为四个字节:00010011、00010110、00000101、00101110。分别对应的值(Base64编码索引)为:19、22、5、46。
  • 第四步:用上面的值在 Base64 编码表中进行查找,分别对应:T、W、F、u。因此“Man”Base64编码之后就变为:TWFu。

上面的示例旨在指出,编码的用例仅是数据处理,而不为编码的数据提供保护。

4. 什么是混淆?

混淆定义:将人类可读的字符串转换为难以理解的字符串。

  • 与加密相反,混淆处理不包含加密密钥。
  • 与编码类似,混淆不能保证任何安全性,尽管有时会误将其用作加密方法

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读