加密密钥的基本概念
加密密钥是保障数据安全的核心工具,就像家门的钥匙一样。没有它,别人很难打开你的“数字保险箱”。在软件配置、网络通信或文件存储中,生成一个可靠的加密密钥是第一步。
常见的加密方式有对称加密(如AES)和非对称加密(如RSA)。对称加密使用同一个密钥加解密,非对称则有一对密钥:公钥和私钥。
用OpenSSL生成RSA密钥对
在Linux或macOS系统中,OpenSSL是最常用的工具之一。比如你想为网站配置HTTPS,就需要生成一对RSA密钥。
打开终端,输入以下命令:
openssl genrsa -out private_key.pem 2048这条命令会生成一个2048位的私钥,保存在当前目录的private_key.pem文件里。接下来提取对应的公钥:
openssl rsa -in private_key.pem -pubout -out public_key.pem完成后,public_key.pem就是你可以分发出去的部分,而私钥必须妥善保管,不能泄露。
生成AES对称密钥
如果你要加密本地文件,比如备份重要资料,AES就很实用。可以直接用OpenSSL生成一个随机的256位密钥:
openssl rand -base64 32 > aes_key.txt这行命令生成了一个Base64编码的32字节随机密钥,存入aes_key.txt。以后用这个密钥加密文件时,记得把密钥单独存好,比如放在加密U盘里。
编程中动态生成密钥
在写Python脚本处理敏感数据时,也可以直接在代码里生成密钥。例如使用cryptography库:
from cryptography.fernet import Fernet
# 生成密钥
key = Fernet.generate_key()
print(key.decode())每次运行都会输出不同的密钥字符串,可以直接保存下来用于后续加密操作。注意不要把生成的密钥硬编码进代码里,更安全的做法是读取外部配置文件。
密钥生成的注意事项
不管用什么方法,都要确保密钥的随机性足够强。别自己拍脑袋想个“123456”当密钥,那样等于没加密。
另外,生成密钥后要设置好权限。比如Linux下可以执行:
chmod 600 private_key.pem这样只有文件所有者能读写,其他用户无法查看,避免被恶意程序窃取。
还有个小技巧:在生产环境中,建议定期轮换密钥。就像你会定期换WiFi密码一样,降低长期暴露的风险。