如何通过OpenSSL命令从密码短语生成可复现私钥?
如何生成可复现的RSA私钥?
可以实现。你当前的命令每次生成不同私钥,是因为OpenSSL默认使用随机的熵源生成密钥材料。只要固定随机数输入,就能得到完全一致的私钥,具体方法如下:
方法1:通过
-rand参数指定固定种子文件
首先创建一个内容固定的种子文件,比如:echo "papa-was-a-rolling-scone-seed" > fixed-seed.txt
然后执行带-rand参数的密钥生成命令:openssl genpkey -algorithm RSA -out private.pem -pass pass:papa-was-a-rolling-scone -rand fixed-seed.txt
只要fixed-seed.txt的内容完全不变,每次执行该命令都会生成相同的私钥。方法2:设置
RANDFILE环境变量指向固定种子文件
先指定随机数文件路径:export RANDFILE=./fixed-seed.txt
再执行你原本的命令即可,同样只要种子文件内容固定,生成的私钥就会一致。
注意:这种固定种子的方式仅适合测试、模拟等非生产场景。生产环境必须使用不可预测的随机源,否则私钥会存在被猜测的安全风险。
内容的提问来源于stack exchange,提问作者Sir Galahad
相关产品推荐
相关产品推荐

