本文目录导读:

在脚本编程中,加密解密常用的库根据语言不同而有所差异,以下是主流脚本语言常用的加密解密库:
Python
-
cryptography - 最推荐的现代加密库
- 支持对称加密(AES、ChaCha20)、非对称加密(RSA、ECC)、哈希等
- 示例:
from cryptography.fernet import Fernet
-
PyCryptodome - PyCrypto的活跃分支
- 支持多种加密算法(AES、DES、RSA、DSA等)
- 示例:
from Crypto.Cipher import AES
-
hashlib - Python内置哈希库
- 支持MD5、SHA1、SHA256等
- 示例:
import hashlib; hashlib.sha256(b'data').hexdigest()
-
base64 / binascii - 编码库(常用于加密后数据编码)
- 示例:
import base64; base64.b64encode(data)
- 示例:
JavaScript (Node.js)
-
crypto (Node.js内置) - 功能全面的加密模块
- 支持对称加密(AES)、哈希、HMAC、数字签名等
- 示例:
const crypto = require('crypto')
-
bcrypt / bcryptjs - 密码哈希专用库
- 示例:
const bcrypt = require('bcrypt'); bcrypt.hashSync('password', 10)
- 示例:
-
jsonwebtoken - JWT令牌生成与验证
- 示例:
const jwt = require('jsonwebtoken')
- 示例:
-
crypto-js - 纯JS实现的加密库
- 适合浏览器端使用
- 示例:
CryptoJS.AES.encrypt(text, key)
Bash/Shell
-
OpenSSL (命令行) - 最常用的加密工具
- 对称加密:
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc - 哈希:
echo -n "data" | openssl dgst -sha256
- 对称加密:
-
GnuPG (gpg) - 非对称加密和签名
- 示例:
gpg --encrypt --recipient user@example.com file.txt
- 示例:
-
base64 / openssl base64 - 编码工具
- 示例:
echo -n "data" | base64
- 示例:
通用建议
- 密码哈希:使用bcrypt、scrypt或Argon2(不要自己实现)
- 数据传输加密:优先使用TLS/SSL
- 数据存储加密:使用AES-256-GCM等认证加密模式
- 简单编码:base64适合编码而非加密
选择库时,优先考虑经过安全审计、有活跃维护的标准库,避免自己实现加密算法。