跳转到内容

密码学入门

发布时间:2025年9月15日

密码学是保护信息安全的数学基础,是现代网络安全的基石。

加密和解密使用相同的密钥。

算法密钥长度特点
AES128/256 bits目前最广泛使用的对称加密
ChaCha20256 bits移动设备上性能优异
from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher = Fernet(key)
encrypted = cipher.encrypt(b"敏感数据")
decrypted = cipher.decrypt(encrypted)

使用公钥加密、私钥解密,安全性更高:

  • RSA:广泛使用的公钥加密算法
  • ECC:椭圆曲线加密,相同安全级别需要更短的密钥
  • HTTPS 握手(TLS)
  • 数字签名
  • SSH 认证
  • 区块链交易

将任意长度的数据映射为固定长度的摘要:

  • MD5:已不推荐使用(存在碰撞攻击)
  • SHA-256:目前广泛使用
  • bcrypt:专为密码存储设计,内置加盐

数字签名确保消息的完整性和来源可靠性:

  1. 发送方使用私钥对消息哈希签名
  2. 接收方使用公钥验证签名
  3. 任何篡改都会导致验证失败