Skip to content

Commit 1bb8488

Browse files
committed
更新 加密章节
1 parent 1f8a404 commit 1bb8488

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

Diff for: chapter9/chapter9-1.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ UDP 继承了 `EventEmitter`, 同样也支持 IPV4和 IPV6协议, 由`type`区
208208
SO_REUSEADDR允许完全重复的捆绑:当一个IP地址和端口绑定到某个套接口上时,还允许此IP地址和端口捆绑到另一个套接口上。一般来说,这个特性仅在支持多播的系统上才有,而且只对UDP套接口而言(TCP不支持多播)。
209209

210210
### 总结
211-
211+
从笔者的经验看,尽量不要尝试去使用 `UDP`,除非你知道丢包了对于应用是没有影响的,否则排查网络丢包会使人崩溃的!
212212

213213

214214
### 参考

Diff for: chapter9/chapter9-3.md

+17-5
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,22 @@ OpenSSL 是在程序上对 SSL 标准的一个实现,提供了:
2626
Node.js 是完全采用 OpenSSL 进行加密的,其相关的 TLS HTTPS 服务器模块和 Crypto 加密模块都是通过 C++ 在底层调用 OpenSSL 。
2727

2828
OpenSSL 实现了对称加密:
29-
29+
```shell
3030
AES(128) | DES(64) | Blowfish(64) | CAST(64) | IDEA(64) | RC2(64) | RC5(64)
31-
31+
```
3232
非对称加密:
33-
33+
```shell
3434
DH | RSA | DSA | EC
35-
35+
```
3636
以及一些信息摘要:
37+
```shell
3738
MD2 | MD5 | MDC2 | SHA | RIPEMD | DSS
38-
39+
```
3940
其中信息摘要是一些采用哈希算法的加密方式,也意味着这种加密是单向的,不能反向解密。这种方式的加密大多是用于保护安全口令,比如登录密码。这里面我们最长用的是 MD5 和 SHA (建议采用更稳定的 SHA1, MD5通过查表大法已经不再单向)。
4041

42+
使用非对称加密会损耗性能,对称加密又不能在网络传输,那该怎么办呢?
43+
答案是:结合两者一起使用。`ssl/tls`实际上也是如此,`tls`将两者完美组合使用。
44+
4145

4246
### TLS HTTPS 服务器
4347
想要建立一个 Node.js TLS 服务器,需要使用 tls 模块:
@@ -60,10 +64,18 @@ MD2 | MD5 | MDC2 | SHA | RIPEMD | DSS
6064
+--------------+ 证书是伪造的
6165
```
6266

67+
68+
6369
### 总结
70+
加密的安全性,主要是以下两种因素共同决定
6471

72+
使用的加密算法
73+
* 密钥(key)的长度
74+
* 在相同的算法下,密钥长度增加一位,暴力破解的难度指数级增加。如果使用对称加密,现在AES-256足够安全。
6575

76+
不过据说RSA的1024位密钥已经能被政府用非常昂贵的设备暴力破解,所以在使用RSA算法时,密钥长度要选2048,并没有决对的安全。
6677

78+
加密的性能上,
6779

6880
### 参考
6981
* http://www.jianshu.com/p/a8b87e436ac7

0 commit comments

Comments
 (0)