关于在OpenSSL中生成符合AES标准的128位对称密钥的技术问询
在OpenSSL中生成符合AES标准的128位对称密钥的方法
嘿,别着急,OpenSSL完全能搞定AES-128对称密钥的生成,我给你分享几个实用的方法,看你需求选就行:
直接生成随机128位密钥(推荐,安全性最高)
AES-128的密钥长度是16字节(128位),用rand命令可以直接生成加密安全的随机密钥。如果要十六进制格式输出(方便查看和复制),用这条命令:openssl rand -hex 16执行后会输出32个十六进制字符(每个字符4位,32*4=128位),这就是你的AES-128密钥。要是你需要二进制格式的密钥文件,直接去掉
-hex参数,输出到文件就行:openssl rand 16 > aes128.key从口令派生AES-128密钥
如果你需要基于某个口令生成密钥,可以用enc命令结合哈希算法派生:openssl enc -aes-128-cbc -k "你的口令" -P -md sha256执行后会输出
key=开头的十六进制字符串,这就是派生出来的AES-128密钥,同时还会生成对应的初始化向量(IV)。注意这里的口令要足够复杂,不然派生的密钥安全性会打折扣。
另外要提醒下,openssl rand用的是系统的加密安全随机数生成器,生成的密钥安全性很高,是生产环境的首选哦。
备注:内容来源于stack exchange,提问作者vico




