【发布时间】:2016-05-09 12:15:29
【问题描述】:
玩了一些战争游戏,很好奇这是否可能(他们可能希望你以不同的方式解决它,但仍然如此)。
有一个 .c 文件,其函数的代码如下所示:
char buffer[20];
scanf("%s", buffer);
char* hash = crypt(buffer, "$6$")
char* password = "$6$123456abcdef" #long string
if (strcmp(password, hash) == 0) supersecretfunction();
考虑到盐和散列密码已经知道,有没有办法暴力破解?
【问题讨论】:
-
取决于加密。为了蛮力,您需要能够将加密的纯文本与密文进行比较(即,您需要能够重现整个加密方法。看到您拥有此功能并且您知道盐,我会说您会能够。这一切都归结为加密的密钥长度。现代加密方法在计算上很难在蛮力中使用。所以找出你需要检查多少可能的密码,看看需要多长时间。
标签: c linux password-encryption brute-force crypt