《深入浅出HTTPS》读书笔记(19):密钥

为了避免暴力破解,不同密码学算法的密钥应该保证一定长度,密钥长度足够长也不代表安全,密钥应该是随机、无法预测的。

从两个维度考虑:

◎对称加密算法、MAC算法使用的密钥就是一串数字。

◎公开密钥算法中的密钥是一对,由多个部分组成,但本质上也可以认为由多个数字组成。

密钥虽然是简单的数字,但在实际使用过程中还是复杂的,涉及密钥生成、存储、传输等一系列的工作。

【生成密钥】

密钥最关键的特性:

◎足够的长度,达到一定长度才能保证算法安全性。

◎不可预测性,不能是简单的数字、字母组合,否则即使长度足够,密钥本身也容易被破解。

为了生成密钥,一般采用两种方法:

◎基于伪随机生成器生成密钥。

◎基于口令的加密(Password-based Encryption,简称PBE)算法产生密钥。

使用伪随机数生成器(PRNG)生成的密钥足够随机,很难预测。

PBE算法生成的密钥一般情况下无须存储,因为使用同样的口令就能生成同样的密钥。

相关推荐
zhangjw343 小时前
Java基础语法:变量、数据类型与运算符,从原理到实战
java·开发语言
算法鑫探6 小时前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
yaoxin5211236 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
WBluuue6 小时前
数据结构与算法:康托展开、约瑟夫环、完美洗牌
c++·算法
NotFound4866 小时前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
木子墨5166 小时前
LeetCode 热题 100 精讲 | 并查集篇:最长连续序列 · 岛屿数量 · 省份数量 · 冗余连接 · 等式方程的可满足性
数据结构·c++·算法·leetcode
学代码的真由酱7 小时前
HTTPS
网络协议·http·https
Ava的硅谷新视界7 小时前
用了一天 Claude Opus 4.7,聊几点真实感受
开发语言·后端·编程
rabbit_pro7 小时前
Python调用onnx模型
开发语言·python
王老师青少年编程7 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:均分纸牌
c++·算法·编程·贪心·csp·信奥赛·均分纸牌