【发布时间】:2014-08-23 04:04:44
【问题描述】:
我有几年前的旧 macbook,我不记得确切的密码,但我确实记得当时密码中的一些字符,所以我想我可以使用一个版本的一个现成的脚本。问题是,当我使用示例中的字符串测试“密码”的哈希值时,我得到的值与提供的哈希值不同。因此,我将永远无法获得我的旧密码。这是从http://pastebin.com/Gv6VxEZ7拉取的相关代码
#Should be 8 characters of salt + sha hash for "password" if I'm understanding this correctly
digest = "33BA7C74C318F5D3EF40EB25E1C42F312ACF905E20540226"
salt = "33BA7C74"
sha1 = "C318F5D3EF40EB25E1C42F312ACF905E20540226"
try:
salt_hex = chr(int(salt[0:2], 16)) + chr(int(salt[2:4], 16)) + chr(int(salt[4:6], 16)) + chr(int(salt[6:8], 16)) # CONVERT SALT TO HEX
check("password", salt_hex, salt)
def check(password,salt_hex, salt): # HASH PASS AND COMPARE
if not password.startswith("#!"): #IGNORE COMMENTS
sha1_guess = hashlib.sha1(salt_hex+password).hexdigest()
print("Trying with salt_hex " + password)
print sha1_guess.upper()
print "\n"
sha1_guess = hashlib.sha1(salt+password).hexdigest()
print("Trying with salt " + password)
print sha1_guess.upper()
print "\n"
if sha1 in sha1_guess.upper():
print("Cleartext password is : "+password)
exit(0)
很遗憾,这两次尝试的输出都不正确
$ python sha_crack.py
正在尝试破解... 33BA7C74C318F5D3EF40EB25E1C42F312ACF905E20540226
尝试使用 salt_hex 密码 9D8F0A15CF344F7FB35A1918AA0636A025261627
尝试使用盐密码 E105192888CC1C34B7535AAA0425EC06F653A1B9
我正在测试的文章表明此哈希用于“密码”
http://www.defenceindepth.net/2009/12/cracking-os-x-passwords.html
【问题讨论】:
-
不完全确定这是一个真实的例子。
-
您似乎放弃了
salt_hex+password的猜测,没有将其与任何东西进行比较。