首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >恢复由16位数字组成的压缩文件密码是否可行?

恢复由16位数字组成的压缩文件密码是否可行?
EN

Security用户
提问于 2020-05-20 13:30:01
回答 2查看 4K关注 0票数 3

我的一个朋友丢失了她的一个压缩文件的密码。她记得密码只包含数字(即只有0、1、2、3、4、5、6、7、8和9),长度约为16个字符。密码中的数字是随机选择的,通过随机点击键。她把密码保存在TXT文件中,但文件不见了。

是否有恢复密码的可行方法?如果是的话,我们怎样才能做到呢?

我在互联网上读到,这么长的密码是无法恢复的,但我认为我们的情况很特殊,因为我们知道密码是数字的。我们是数学专业的外行,在我们的情况下,我们无法估计破解密码所需的时间。我的朋友应该简单地放手,还是值得花时间和精力去找回密码呢?

EN

回答 2

Security用户

回答已采纳

发布于 2020-05-20 13:58:07

密码是随机选择的,通过随机敲击键。

TL;DR:如果存档被ZipCrypto保护,则可以破解not,如果存档被"WinZip“AES加密保护,则<#>not是可行的。

16位随机数字= 10^16 = <#>10 000 000 000组合= 53位

例如,这意味着,如果您能够实现密码验证速度为100 000散列/秒,则brute强制使用密码所需的时间如下:

  1. 100000000000秒
  2. 1666666667分钟
  3. 27777778小时
  4. 1157407天
  5. 3171年

更多需要考虑的事情(谢谢,评论部分!):

  1. 1000 1000散列/秒 => 317年蛮力
  2. 10 1000散列/秒 => 32年蛮力(视具体情况而定,使用GPU的WinZip/7-Zip/PKZIP算法(见Nvidia RTX 2080基准测试))。
  3. 30 GH/sec => 4 days (我可以在相同基准中看到一些关于PKZIP的hashcat测量)
  4. 22.7ZettaHash/秒=> a第二次蛮力。对于原始的PKZIP加密算法来说,这似乎是可行的,它可以以"22.7 ZettaHash/秒在一台RTX 2080 RTX上“的速度使用一些特定的攻击来强制执行。那么,您可以在秒内破解16个数字。不是AES+PBKDF2,而是在WinZip中使用的。

至少有两种不同的算法被广泛用于保护zip归档:

  1. <#>ZipCrypto (PKZIP加密)
    • 原始的PKZIP加密绝对是瘦弱 (它使用基于sec 32的密钥派生):从10 MH/秒到30-100 GH/秒,再到22.7 ZettaHash/s在1 1 1GPU上。根据具体的攻击、硬件和优化集,您可以从破解16个数字到1-2天的可行性。如果你还不够幸运的话。

  2. AES加密 (WnZip加密)
票数 4
EN

Security用户

发布于 2020-05-22 05:37:31

16个字符是相当长的。即使只有数字,也需要很长时间。我不确定用武力和蛮力会有多大的道理。也许可以考虑使用文件恢复程序来尝试恢复她的密码txt文件。如果您想尝试蛮力地强制zip归档,下面是一个php脚本。

剧本:

代码语言:javascript
运行
复制
&1 > /dev/null && echo $?");
    $output = trim($output);
    if ($output === '0'){
        echo "Password is {$i}\n";
        $i = 9999999999999999;
    }
    $i++;
}
?>

样本输出(按尺寸调整):

代码语言:javascript
运行
复制
user1@vm1:~/Music$ php script.php
Trying 9999999999999995
Trying 9999999999999996
Trying 9999999999999997
Trying 9999999999999998
Trying 9999999999999999
Password is 9999999999999999
user1@vm1:~/Music$ 
票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/231939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档