我想使用我自己创建和管理的密钥加密文件(使用 AES 256)。有没有支持这个的linux命令行实用程序? gpg
不,我也不认为openssl
是吗?
仅供参考,我完全意识到自己创建和管理密钥是不是被认为是安全的或最佳实践。尽管如此,出于我自己的特殊原因,这就是我想做的。如果一切都失败了,我可以用 java 编写一些东西来做到这一点,但如果有一个现有的实用程序,我宁愿使用它。
答案1
gpg确实支持AES256,你只需要更改配置文件,有设置首选密码的选项,还有加密时的选项。
gpg 建议不要设置加密密码,因为它会根据偏好自动选择,并且为了最大限度地提高兼容性,有许多受支持的密码。
在这里您可以看到支持的密码:
mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
再次使用禁用密码:
mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: AES256, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
答案2
根据您的描述检查 mcrypt 它应该按照您的要求进行。因为它允许您使用自己的密钥。虽然我不确定为什么你不能使用 gpg?如果您尝试将这种加密用于网络或签名软件,TinyCA 是另一个选择。
您已经指出您了解自签名的注意事项,因此我将其留给您判断。
答案3
命令行实用程序openssl
可以使用文件中的密码来执行此操作:
openssl aes-256-ctr -pass file:./passwordfile < file.plain > file.enc
openssl aes-256-ctr -d -pass file:./passwordfile < file.enc > file.plain
您可以用来-K
设置实际使用的密钥,而不是从密码中派生它,但是它也需要手动设置 IV,所以这不是很方便。
手册页是enc(1)
。