gpt4 book ai didi

command-line - 如何使用 Rar 或 WinRAR 创建密码以双引号开头的加密存档?

转载 作者:行者123 更新时间:2023-12-02 20:32:53 25 4
gpt4 key购买 nike

我正在尝试在 Windows 7 中通过命令行创建一个命令行来使用密码压缩为 RAR 文件。我已经安装了 WinRAR 5.31 x64。

以下命令对我有用:

rar a -r -m0 -hp"!(/!$!#!#=)\%" C:\files1.rar" *.*

密码为!(/!$!#!#=)\%

如果我想在密码中添加双引号 " ,例如在开头,就会出现问题:

rar a -r -m0 -hp""!(/!$!#!#=)\%" C:\files1.rar" *.*

密码应为"!(/!$!#!#=)\%

这对我不起作用,我尝试将 \ 放在 " 之前,但这也不起作用。

有人可以指导我完成密码中的这个特殊字符吗?

最佳答案

Mofi 的进一步回答:

特别是对于从命令行使用 winrar/rar 的 Linux 用户来说,可能值得认识到 rar 有效地接受“ key 文件”,这可能会克服将引号作为密码一部分的需要。

Rar 记录的最大密码长度为 127 个字符/字节。 (对我来说)不清楚哪些字符是密码空间的一部分,但至少 base64 编码的字符串可以工作。然而,rar目前使用基于 PBKDF2 的基于密码的 key 派生函数,使用 HMAC-SHA256 哈希函数,其 block 大小为 512 位。每PBKDF2 ,长度超过哈希函数 block 大小的密码首先被预先哈希为 256 位的摘要,然后将该摘要用作密码(而不是原始密码)。至avoid因此,您选择的存档密码不应超过 512 位或 64 个字符。

在base64编码的字符串中,每个字符代表6位数据;因此,64 个字符的密码相当于 384 个随机位,可以从 48 个随机字节导出。

rar a -hp"$(dd if=/dev/urandom bs=48 count=1 | base64 -w0 | tee /tmp/pwd)" archive

上面的dd-pipe将从内核的(非阻塞)随机数源设备读取48个(伪)随机字节,将它们转换为64个字符的密码,告诉rar 使用该密码派生 256 位 (AES256) 加密 key (RAR5 格式),同时将密码存储在文件“/tmp/pwd”中。

可以再次访问存档,例如通过从文件中读回密码来列出,例如如下所示:

rar l -p"$(cat /tmp/pwd)" archive.rar

密码文件可以安全地单独存储或与存档一起存储,在后一种情况下(当然)在对其进行加密后,例如使用 gpg 使用您自己的公钥,以便将存档密码锁定在您的私钥/ key 短语下。所有这些都是为了方便地利用好rar的密码/ key 空间。

我注意到我没有深入研究 unrar 的公开源代码;以上仅基于一般文档。另外,不知道上面是否可以在Windows下运行。

关于command-line - 如何使用 Rar 或 WinRAR 创建密码以双引号开头的加密存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48143265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com