Encryption 在文件中生成三重DES密钥,并使用它加密消息
我正在学习密码学,我想使用OpenSSL命令行生成一个用base64编码的三重DES密钥,并将生成的密钥保存到一个文本文件中,然后我想使用这个密钥文件加密一条文本消息 我使用标准命令“rand”生成一个大小为24字节的随机值,用base64编码,并将其保存为文本文件中的密钥,但我不知道如何使用此文件使用命令“enc”加密文本消息,我想知道是否有更好的方法使用OpenSSL命令行生成三重DES密钥Encryption 在文件中生成三重DES密钥,并使用它加密消息,encryption,command-line,openssl,des,Encryption,Command Line,Openssl,Des,我正在学习密码学,我想使用OpenSSL命令行生成一个用base64编码的三重DES密钥,并将生成的密钥保存到一个文本文件中,然后我想使用这个密钥文件加密一条文本消息 我使用标准命令“rand”生成一个大小为24字节的随机值,用base64编码,并将其保存为文本文件中的密钥,但我不知道如何使用此文件使用命令“enc”加密文本消息,我想知道是否有更好的方法使用OpenSSL命令行生成三重DES密钥 这不是一个编程或开发问题,也不是真正的本体论问题。它更适合security.SX或超级用户 如果这不
enc
使用libcrypto默认值enc
默认为基于密码的加密,该加密从提供的密码派生密钥,但可以使用十六进制的-K
(大写)获取实际密钥;请参阅手册页rand-hex
,这将很容易:
openssl rand -hex 24 >key.hex
openssl enc -des-ede3-cbc -K $(cat key.hex) -iv 0123456789ABCDEF -in X -out Y
# see below
在Windows上,这也是可管理的,但不是那么容易;你需要像这样的东西
openssl rand -hex 24 >key.hex
for /f %t in ('type key.hex') do set k=%t
rem double the % if used in a batch file
openssl enc -des-ede3-cbc -K %k% -iv 0123456789ABCDEF -in X -out Y
rem ditto
如果坚持使用base64,则需要Unix上的帮助程序
openssl rand -base64 24 >key.b64
K=$( openssl base64 -d <key.b64 | xxd -p )
openssl enc -des-ede3-cbc -K $K ... # as above
openssl rand-base64 24>key.b64
K=$(openssl base64-d