Skip to content

Commit 3d270dc

Browse files
committed
modify arts week 3 Review
1 parent 0ebc936 commit 3d270dc

File tree

1 file changed

+55
-1
lines changed

1 file changed

+55
-1
lines changed

_posts/arts/2019-04-19-arts_week_3.md

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,56 @@ class Solution:
5555

5656
## Review
5757

58-
[What devs need to know about Encoding / Encryption / Hashing / Salting / Stretching](https://hackernoon.com/what-devs-need-to-know-about-encoding-encryption-hashing-salting-stretching-76a3da32e0fd)[开发需要了解的编码/加密/哈希/盐]
58+
[What devs need to know about Encoding / Encryption / Hashing / Salting / Stretching](https://hackernoon.com/what-devs-need-to-know-about-encoding-encryption-hashing-salting-stretching-76a3da32e0fd)[开发需要了解的编码/加密/哈希/盐/密钥扩展]
59+
60+
### 编码(Encoding)
61+
62+
我们常说的base64, unicode, UTF-8就是编码。
63+
64+
编码的过程是将字符或符号转换为等效的记号,听起来很像加密,他们之间的最大的区别就是加密/解密需要密钥但是编码不需要。
65+
66+
### 加密(Encryption)
67+
68+
两种加密方式:
69+
70+
1. 对称加密(Symmetric Key Encryption)
71+
2. 非对称加密(Asymmetric Key Encryption)
72+
73+
#### 非对称加密
74+
75+
TLS (https)和PGP就是使用非对称加密的典型应用。更多的关于RSA的请看[这篇论文](http://csjournals.com/IJITKM/PDF%207-2/26.%20navpreet.pdf)
76+
77+
#### 对称加密
78+
79+
加密和解密的密钥是同一个。
80+
81+
比较差的密钥实现:`所有信息使用固定密钥``密钥过于简单`
82+
83+
### 熵(Entropy)
84+
85+
熵测量在密码学中使用随机数据的方式。 用户的密码往往具有较低的熵,因为它可以很容易被猜到或被暴力破解。
86+
87+
我们如何解决这个问题? 我们如何拥有完全随机的数据,以及只有用户才知道的东西? 这就是'哈希'的用武之地。
88+
89+
### 哈希(Hashing)
90+
91+
哈希将数据转换成固定长度的值来代表原来的数据。
92+
93+
例如:MD5(是一种哈希算法,通常我们说的‘MD5加密算法’是不准确的), 加密得到128bit(通常显示为32个16进制的字符)。不管多大的文件或者0长度的字符串,MD5产生的哈希值都是128bit。
94+
95+
MD5只是一个单向的哈希算法,我们不可能通过128bit的值得到原始数据。但是使用`彩虹表`破解密码
96+
97+
### 盐(Salting)
98+
99+
在密码的前边或后边添加字符串(盐)然后进行hash。
100+
101+
要保证盐有足够的长度和随机性(Cryptographically Secure Pseudo-Random Number Generator,伪随机数产生器)
102+
103+
只有加密hash函数(cryptographic hash functions)可以用来进行密码的hash。这样的函数有SHA256, SHA512, RipeMD, WHIRLPOOL等。
104+
105+
### 密钥扩展(Stretch)
106+
107+
增加破解的时间,需要更强的算力
59108

60109
## Tip
61110

@@ -64,3 +113,8 @@ class Solution:
64113
## Share
65114

66115
[InnoDB 锁]({{ site.blog_url }}/2019/01/21/InnoDB_Locking.html)
116+
117+
## 参考链接
118+
119+
[加盐hash保存密码的正确方式](http://ju.outofmemory.cn/entry/68152)
120+
[What devs need to know about Encoding / Encryption / Hashing / Salting / Stretching](https://hackernoon.com/what-devs-need-to-know-about-encoding-encryption-hashing-salting-stretching-76a3da32e0fd)

0 commit comments

Comments
 (0)