我是加密方面的新手,因此我需要一些帮助:
我正在尝试按照 MariaDB 网站上的教程创建一个 aes-256-cbc 密钥来加密我的静态数据。
它告诉我复制并粘贴的行是这样的:
enc -aes-256-cbc -md sha1 -k secret -in keys.txt -out keys.enc
在这种情况下,它返回了这个。
Salted__›}´3`ìe›‚Å)l‘»ŽWݧ
这不是我需要的。
如果我使用打印命令,它将打印出我需要的密钥。现在密钥太长,无法手动复制,所以我需要将密钥输出重定向到文件。有人能帮我写出正确的命令来将密钥放入文件中吗?
密钥看起来与此类似:
770A8A65DA156D24EE2A093277530142
编辑:它也不允许我从 CMD 提示符中复制。
答案1
您使用的命令keys.txt
使用您提供的密码()生成的密钥secret
(以及随机生成的“盐”,除非您-nosalt
也使用该选项)来加密文件。
我不确定你真正想要什么。如果你想让 openssl 显示从你的密码 / 生成的用于加密的密钥,你可以使用选项-p
(或者-P
如果你不想继续进行实际加密)。你会注意到,除非你使用 ,否则每次运行命令时密钥都会有所不同-nosalt
。
或者您想要的是-base64
(虽然根据您展示的示例结果似乎并非如此),它将使用某种算法进一步对加密文件进行编码,以便输出为 ASCII 字符串:https://en.wikipedia.org/wiki/Base64
您可能已经注意到,如果您不希望源被“盐头”污染,那么-nosalt
在使用时您可能也希望如此-base64
。
如果您只是想要一个随机密钥,您应该执行以下操作:
enc -aes-256-cbc -pass file:/dev/urandom -P
顺便说一句,当你使用-p
/时-P
,除了 a key
(和 a salt
),你还会看到一个iv
,它代表初始化向量。