加解密技术
# base
# category
- 可逆加密
- 对称加密: 加密和解密时使用相同的密钥, 常见的有 DES, 3DES, AES, PBE
- 非对称加密: RSA, DSA, ECC
- 不可逆加密: 也叫单向加密, 常见的有 MD5, HMAC
# sha-256
SHA-256(Secure Hash Algorithm 256-bit)是一种广泛使用的加密哈希函数,它由美国国家安全局(NSA)设计,并作为 SHA-2 系列算法的一部分。它具有以下特点:
- 固定长度输出
输出长度为 256 位(32 字节),无论输入数据的大小或长度如何,SHA-256 总是生成一个 256 位的散列值(哈希值)
- 抗碰撞性
SHA-256 的设计使得找到两个不同的输入数据生成相同的哈希值(碰撞)非常困难。虽然不存在完全的碰撞防护(理论上仍可能发生),但找到碰撞的概率极低。因此,SHA-256 通常被认为是抗碰撞的
- 抗篡改
哈希函数的一个重要性质是不可逆性: 给定一个哈希值,几乎不可能反推出生成这个哈希值的原始输入。这意味着即使攻击者知道哈希值,也无法直接推断出原始数据
- 小输入变化会引起大的输出变化
SHA-256 对输入数据非常敏感,即使对输入数据做微小的改动(如改变一个字母或符号),生成的哈希值也会发生剧烈变化。这种特性称为“雪崩效应”,它确保输入数据的任何微小变化都会导致完全不同的哈希值
- 广泛应用
SHA-256 是当前许多安全协议中的重要组成部分,广泛用于数字签名、数据完整性验证、证书签名、区块链等应用 在区块链领域,特别是在比特币等加密货币中,SHA-256 用于挖矿过程以及生成地址
- 速度和安全性平衡
相较于较短的哈希算法(如 SHA-1),SHA-256 提供了更高的安全性,但计算速度稍慢。虽然它没有 SHA-3 这样的最新算法安全性高,但在大多数场景中,SHA-256 提供了足够的安全保证
- 安全性
目前没有已知的有效攻击能打破 SHA-256 的安全性。传统的攻击(如暴力破解)由于 SHA-256 的输出长度较大,所需计算资源庞大,因此目前是不可行的
- 抗预映射攻击
SHA-256 对抗预映射攻击有很强的抵御能力,这意味着给定一个哈希值,要找到一个匹配的输入是极其困难的
- 无密钥
与对称加密算法不同,SHA-256 是一种无密钥的哈希函数,它不需要密钥参与运算
总结来说,SHA-256 是一种快速、高效且相对安全的哈希算法,广泛应用于各种需要数据完整性、认证、签名等场景中。# 对称加密 vs 非对称的加密
https://zhuanlan.zhihu.com/p/42516761 (opens new window)
- 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中