![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
网络/密码
文章平均质量分 92
主要介绍网络和密码学方面的内容
迷雾总会解
我来,我见,我征服!
展开
-
套接字的创建时机、新创建连接套接字的端口、套接字描述符的解惑
所以,进程和端口并不是像之前想的一定一一对应,端口不同的udp/tcp套接字一定会上交给不同的进程(如80、21,因为协议/服务是不同的则进程一定不同),但端口相同的udp/tcp套接字也可能上交给不同的进程(多进程)、相同进程的不同线程(多线程)。后面和客户端通信时,要使用这个新生成的套接字,而不是原来服务器端的套接字。sock 为要接收/发送数据的套接字,buf 为要接收/发送的数据的缓冲区地址,len 为要接收/发送的数据的字节数,flags 为发送数据时的选项,一般设置为 0 或 NULL。原创 2023-08-06 15:20:08 · 1019 阅读 · 0 评论 -
DH、DHE、ECDHE加密算法
于是,DH 交换密钥时就只有客户端的公钥是变化,而服务端公钥是不变的,那么随着时间延长,黑客就会截获海量的密钥协商过程的数据,因为密钥协商的过程有些数据是公开的,黑客就可以依据这些数据暴力破解出服务器的私钥,然后就可以计算出会话密钥了,于是之前截获的加密数据会被破解,所以 static DH 算法不具备前向安全性。但反过来,知道真数却很难推算出对数。static DH 算法里有一方的私钥是静态的,也就说每次密钥协商的时候有一方的私钥都是一样的,一般是服务器方固定,即 a 不变,客户端的私钥则是随机生成的。转载 2022-09-12 15:33:47 · 4589 阅读 · 0 评论 -
ECC加密算法的数学原理
假设在加密过程中,有一个第三者H,H只能知道椭圆曲线 Ep(a,b)、公钥Q、基点P、密文点C,而通过公钥Q、基点P求私钥k或者通过密文点C、基点P求随机数r都是非常困难的,因此得以保证数据传输的安全。(p 、a 、b) 用来确定一条椭圆曲线,p为素数域内点的个数,a和b是其内的两个大数;因为阿贝尔群满足交换律和结合律,所以点P和点-R的二元运算结果必会在曲线上,即P+P+P的结果必会在曲线上的另一点Q,用户接到信息后 ,选择一个随机数r,将消息M生成密文C,C是一个点对,C=(rP,M+rQ),并发送;原创 2022-09-12 15:32:26 · 3821 阅读 · 0 评论 -
RSA加密算法的数学原理
如果两个正整数a和n互质,那么一定可以找到整数b,使得a*b与n相除,余数为1,记作:$ (a \times b) % n = 1 \Rightarrow \frac {(a \times b) - 1} n = 1 $。如果两个数的最大公约数为1,那么我们说这两个数互质,记:GCD(a,b)=1。回到算法中,我们根据e=17和φ(n)=3120,得到一个二元一次方程:$ 17x + 3120y = 1。则n = p * q = 3337, Φ(n)=(p-1)(q-1)=3220;(ab和1关于n同模)原创 2022-09-12 15:25:44 · 1716 阅读 · 1 评论 -
HTTPS的理解(证书、认证方式、TLS握手)
HTTP 存在的问题没有加密,无法保证通信内容不被窃听。没有报文完整性验证,无法确保通信内容在传输中不被改变。没有身份鉴别,无法让通信双方确认对方身份。HTTP over SSL,在 HTTP 传输上增加了传输层安全性(TLS)或安全套接字层(SSL),通过信息加密、数据完整性校验、身份鉴别为 HTTP 事务提供安全保证。SSL 会对数据进行加密并把加密数据送往 TCP 套接字,在接收方,SSL 读取 TCP 套接字的数据并解密,把数据交给应用层。原创 2022-09-12 15:23:35 · 5719 阅读 · 4 评论 -
HTTP的理解和各个版本的介绍优化
如果同时设置了Response和Request中的max-age 缓存时间,如果Request中的max-age时间小于Response中的max-age时间,客户端会根据Request中max-age时间周期去直接进行网络请求,如果碰到断网或者网络请求不通的情况,即使缓存还在有效期内(Response中设置的max-age时间足够大),在Request设置的max-age过期之后,APP也会直接去进行网络请求。显示了更多的视觉媒体,增加了交互性的脚本的数量和大小也增加了。客户端要向服务器发送请求的。原创 2022-09-12 15:20:35 · 1426 阅读 · 0 评论 -
RPC和HTTP的理解
如果你是对外开放API,例如开放平台,外部的编程语言多种多样,你无法拒绝对每种语言的支持,现在开源中间件,基本最先支持的几个协议都包含RESTful。因此HTTP 和 RPC 其实是两个维度的东西,HTTP是一种通信协议,而RPC是一种远程过程调用,调用方和接收方也需要约定一个通信格式,可以用 HTTP 协议,也可以是TCP、UDP以及自定义协议(一般选用TCP)。另一方面,RPC和HTTP都是都是跨应用调用方法的解决方案,准确来说,RPC和Rest才是一种对立关系,RPC,所谓的远程过程调用 ,是。原创 2022-09-09 15:50:35 · 1340 阅读 · 0 评论