我可以使用luks
(如 OpenSSL)来加密 bash 输出吗?
例如使用 OpenSSL:
echo "test" | openssl .....
我可以通过 Luks/Cryptsetup 以某种方式做到这一点吗?像这样:
echo "test" | Luks...
答案1
LUKS 不是命令,它是技术和/或元数据格式的名称,所以不,您不能使用 LUKS 来加密字符串。同样适用于cryptsetup
它只是一个用于配置和管理 LUKS/dm-crypt 设备的用户空间工具(库),并且本身不进行加密 - 写入设备/从设备读取的数据由设备映射器加密插件加密在使用内核加密 API 的内核中,cryptsetup 仅告诉内核创建此类设备并为其提供加密密钥(并且还负责密钥管理),其他所有事情都发生在设备映射器中。
如果您只想cryptsetup
以非交互方式创建加密设备,那当然是可以的:
printf %s "$password" | cryptsetup luksFormat /dev/sdxY -
以及类似地解锁设备
printf %s "$password" | cryptsetup luksOpen /dev/sdxY name -
然后您可以将数据写入/dev/mapper/name
并随后使用 关闭它cryptsetup close name
。
您可以创建磁盘映像并直接使用它(因此cryptsetup luksOpen disk.img name
不使用块设备),但要实际加密某些内容,您仍然需要将其写入创建的设备映射器设备。