一文搞懂Web中暗藏的密码学
强大的哈希算法几乎会为每个唯一输入创建一个新存储桶。 3.2 例子二:网站登陆 在web开发中,哈希算法使用最频繁的是在网站登陆应用上: 绝大多数的网站,在将登陆数据存入时,都会将密码哈希后存储。
注册: 登陆: 哈希算法的一个有趣的方面是:无论输入数据的长度如何,散列的输出始终是相同的长度。 从理论上讲,碰撞冲突将始终在可能性的范围之内,尽管可能性很小。 与之相反的是编码。 4. 什么是编码? 编码定义:将数据从一种形式转换为另一种形式的过程,与加密无关。 它不保证机密性,完整性和真实性这三种加密属性,因为:
4.1 URL编码 又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了:
现在已经成为一种规范了,基本所有程序语言都有这种编码,如:
编码方法很简单,在该字节ascii码的 16 进制字符前面加%. 如 空格字符,ascii码是 32,对应 16 进制是'20',那么urlencode编码结果是:%20。
4.2 HTML实体编码 在HTML中,需要对数据进行HTML编码以遵守所需的HTML字符格式。转义避免 XSS 攻击也是如此。 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映射表,如下: 举个栗子:
上面的示例旨在指出,编码的用例仅是数据处理,而不为编码的数据提供保护。 4. 什么是混淆? (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |