提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- [9. 加密算法详解](#9. 加密算法详解)
-
- [9.1 哈希算法](#9.1 哈希算法)
-
- [9.1.1 Keccak256(以太坊使用)](#9.1.1 Keccak256(以太坊使用))
- [9.1.2 SHA256(比特币使用)](#9.1.2 SHA256(比特币使用))
- [9.2 非对称加密算法](#9.2 非对称加密算法)
-
- [9.2.1 ECDSA(椭圆曲线数字签名)](#9.2.1 ECDSA(椭圆曲线数字签名))
- [9.2.2 EdDSA(Solana使用)](#9.2.2 EdDSA(Solana使用))
- [9.3 对称加密算法](#9.3 对称加密算法)
-
- [9.3.1 AES(钱包加密)](#9.3.1 AES(钱包加密))
- [9.3.2 KeyStore 文件格式](#9.3.2 KeyStore 文件格式)
9. 加密算法详解
9.1 哈希算法
9.1.1 Keccak256(以太坊使用)

代码示例:

应用场景:

9.1.2 SHA256(比特币使用)

Keccak256 vs SHA256:

9.2 非对称加密算法
9.2.1 ECDSA(椭圆曲线数字签名)
以太坊和比特币都使用 secp256k1 椭圆曲线:

密钥生成:


签名过程详解:

代码实现:

9.2.2 EdDSA(Solana使用)
Solana 使用 Ed25519 曲线,比 secp256k1 更快:

ECDSA vs EdDSA 对比:

9.3 对称加密算法
9.3.1 AES(钱包加密)
MetaMask 等钱包使用 AES-128-CTR 加密私钥:


9.3.2 KeyStore 文件格式
以太坊 KeyStore 文件(JSON 格式):

字段说明:
- ciphertext: AES加密后的私钥
- iv: 初始化向量
- kdf: 密钥派生函数(scrypt 或 pbkdf2)
- mac: 消息认证码(验证密码是否正确)
解密流程:
