关于https中的算法

1,对称加密算法,是指加密和解密使用相同的密钥,典型的算法有RSA,DSA,DH

2,非对称加密算法:又称为公钥加密算法,是指加密和解密使用不同的密钥,公共的公钥用于加密,私钥用于解密,比如第一次请求一个https网站的时候,该网站服务器会发送一个数字证书(里面包含公钥)给浏览器,浏览器自动验证证书是否合法有效,如果是则自动随机生成一个key,通过该证书的公钥加密后发送给服务器,服务器则通过证书的私钥解密获得浏览器发送过来的key,服务器和浏览器之间就通过这个key来进行加密通信,这个key称为对话密钥。当然私钥也可以用来加密,只有对应的公钥才能解密,比如浏览器在验证证书合法有效的时候,通过颁发机构的公钥解密获取机构信息的hash值,颁发机构在申请者颁发数字证书的时候会用申请者的个人信息通过颁发机构的证书私钥用hash算法加密生成一个hash值当做证书的数字签名。

3,散列/哈希算法:是指把数据通过某种公开的算法变成固定长度的hash值,这个过程可以使用密钥也可以不使用,这种加密算法是不可逆的,也就是说不能从加密后的hash值解密还原成明文,因此,这种算法通常用于验证数据是否被篡改和数据是否一致。因为同样的明文加密后得到是相同的hash值。典型的算法有MD5,SHA,Base64等。

### HTTPS 加密过程中使用的具体加密算法 HTTPS 是一种基于 HTTP 的安全通信协议,它通过 SSL/TLS 协议实现数据的安全传输。在 HTTPS 中,通常会结合使用多种加密技术以确保数据的机密性和完整性。 #### 1. **非对称加密算法** 非对称加密算法主要用于建立安全连接时的身份验证以及交换对称加密所需的密钥。常见的非对称加密算法包括 RSA、DSA 和 ECC 等[^1]。其中,RSA 是最常用的非对称加密算法之一,在 HTTPS 握手阶段用于加密对称加密算法的密钥[^3]。 #### 2. **对称加密算法** 对于实际的数据传输,HTTPS 更倾向于使用对称加密算法,因为其加解密速度远高于非对称加密算法。AES(Advanced Encryption Standard)是对称加密中最常用的一种算法,广泛应用于 HTTPS 数据流的加密处理中[^2]。由于 AES 的高效性能和强大的安全性,它成为 TLS/SSL 协议中的主要对称加密标准。 #### 3. **混合加密机制** 在 HTTPS 实现中,采用了一种混合加密的方式: - 初始握手阶段利用非对称加密(如 RSA 或 ECC),完成服务器身份认证并协商出一个共享的秘密密钥。 - 后续的实际数据传输则切换到高效的对称加密模式(如 AES)。这种方式既兼顾了非对称加密带来的高安全性,又解决了其效率低下的问题。 以下是简化版的 HTTPS 运行流程示意图: ```plaintext 客户端请求 -> 服务器响应证书 (含公钥) -> 双方通过非对称加密生成共享密钥 -> 后续数据均用对称加密 (如 AES) 处理 ``` --- ### 示例代码:模拟简单的 HTTPS 密钥交换过程 以下是一个伪代码示例,展示如何在 HTTPS 中应用 RSA 和 AES 结合的工作原理: ```python import rsa from Crypto.Cipher import AES # 假设这是由服务器生成的一对 RSA 密钥 (public_key, private_key) = rsa.newkeys(512) # 客户端随机生成一个 AES 密钥 aes_key = b'Sixteen byte key' # 使用服务器的公钥加密 AES 密钥 encrypted_aes_key = rsa.encrypt(aes_key, public_key) # 服务器接收到加密后的 AES 密钥,并用自己的私钥解密 decrypted_aes_key = rsa.decrypt(encrypted_aes_key, private_key) # 接下来可以使用 AES 密钥进行对称加密 cipher = AES.new(decrypted_aes_key, AES.MODE_EAX) data = b'Hello Secure World' ciphertext, tag = cipher.encrypt_and_digest(data) print("Encrypted Data:", ciphertext) ``` 此代码片段展示了如何先用 RSA 加密 AES 密钥,再用该密钥执行快速的对称加密操作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值