HTTPS加密过程详解
时间: 2023-10-15 16:07:36 浏览: 77
HTTPS(Hypertext Transfer Protocol Secure)是一种安全的HTTP协议,它是在传输层(TLS/SSL)上建立的,可以保证数据在传输过程中的安全性和完整性。
HTTPS加密过程如下:
1. 客户端向服务器发送HTTPS请求。
2. 服务器返回证书。证书中包含了服务器的公钥和证书的颁发机构等信息。
3. 客户端验证证书的合法性。客户端会检查证书是否过期、是否被吊销、是否是由可信任的证书颁发机构颁发等。
4. 如果证书验证通过,客户端生成一个随机数作为对称密钥,并使用服务器的公钥对该密钥进行加密,然后将加密后的密钥发送给服务器。
5. 服务器使用自己的私钥对客户端发送过来的密钥进行解密,得到对称密钥。
6. 客户端和服务器使用对称密钥进行加密通信。
在整个过程中,客户端和服务器之间的通信都是加密的,保证了通信的安全性和完整性。同时,通过证书的验证,客户端可以确保自己正在与合法的服务器进行通信,避免了中间人攻击等安全问题。
相关问题
mysql 加密方式
MYSQL数据库的加密方式有两种: MYSQL323加密和MYSQLSHA1加密。在MYSQL 4.1版本之前,使用的是MYSQL323加密,而在MYSQL 4.1版本及之后的版本中,使用的是MYSQLSHA1加密。可以通过在MYSQL数据库中查询Old_Password(str)和Password(str)函数来查看加密方式,前者是用于MYSQL323加密,后者是用于MYSQLSHA1加密。在MYSQLSHA1加密中,生成的加密密码是一个41位的字符串,其中包含一个*字符,但这个字符不参与实际的密码运算,所以实际的密码位数是40位。研究MYSQL数据库的加解密方式对于网络攻防过程中具有重要意义,一旦获取了网站的一定权限后,如果能够解密MYSQL中保存的用户数据,就可以通过正常途径来访问数据库并操作数据,甚至提升权限。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [详解MYSQL数据库密码的加密方式及破解方法(1)](https://blog.csdn.net/arau_sh/article/details/7619721)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
python 同态加密库
TensSEAL是一个方便的同态加密库,它是Microsoft SEAL的Python接口。它实现了BFV和CKKS两种同态加密算法,并提供了对张量进行加密的功能。使用TensSEAL,你可以隐藏很多具体细节,轻松编写同态加密的代码。它是一款适合新手的同态加密库。\[1\]
在TensSEAL中,加密不是直接提供加密函数,而是使用包含加密方案名称的方法,例如bfv_vector。你只需要传入需要加密的明文即可。同时,加密需要提供公钥,也就是生成的上下文对象。\[2\]
上下文对象在TensSEAL中相当于对CKKS的密钥和其他参数进行了封装。在编码、加密、加法、乘法和解密的过程中,只需要将上下文作为参数传入即可。\[3\]
以下是一个使用TensSEAL进行同态加密的Python代码示例:
```python
import tenseal as ts
import numpy as np
def gencontext():
context = ts.context(ts.SCHEME_TYPE.CKKS, 8192, coeff_mod_bit_sizes=\[22, 21, 21, 21, 21, 21, 21, 21, 21, 21\])
context.global_scale = pow(2, 21)
context.generate_galois_keys()
return context
def encrypt(context, np_tensor):
return ts.ckks_tensor(context, np_tensor)
def decrypt(enc_tensor):
return np.array(enc_tensor.decrypt().tolist())
def bootstrap(context, tensor):
# 刷新已经用尽深度的张量
# 这里 bootstrap = enc(dec())
tmp = decrypt(tensor)
return encrypt(context, tmp)
if __name__ == "__main__":
a = np.array(\[\[1., 2., 3., 4.\], \[1., 2., 5., 4.\]\])
context = gencontext()
enc_a = encrypt(context, a)
enc_at = encrypt(context, a.T)
enc_b = encrypt(context, a)
res = enc_a + enc_b
# res = enc_a - enc_b
# res = enc_a * enc_b
# res = enc_a @ enc_at
print(decrypt(res))
```
这段代码演示了如何使用TensSEAL进行同态加密。首先,我们生成一个上下文对象,然后使用该上下文对象对张量进行加密。最后,我们可以进行加法、减法、乘法和矩阵乘法等操作,并通过解密函数将结果解密。\[1\]
#### 引用[.reference_title]
- *1* *2* [TenSEAL库介绍:如何开始同态加密](https://blog.csdn.net/watqw/article/details/129539757)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [同态加密:CKKS方案详解及一个python实现:TenSEAL](https://blog.csdn.net/weixin_43466027/article/details/118792866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]