Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sun, 21 Jul 2013 19:26:50 -0400
From:  <jfoug@....net>
To: john-users@...ts.openwall.com
Cc: Nicolas RUFF <nicolas.ruff@...il.com>
Subject: Re: Using DYNAMIC for implementing SHA-512 ^ 101 ?

---- Nicolas RUFF <nicolas.ruff@...il.com> wrote: 
> 	Hello list,
> 
> Is there any way to implement the following hashing scheme using DYNAMIC ?
> 
> ---8<--- hash.py -------------------------
> import hashlib
> h = hashlib.sha512(password + salt).digest()
> for x in range(1,99):
> 	h = hashlib.sha512( h ).digest()
> print hashlib.sha512( h ).hexdigest()
> ------------------------------------------
> 
> It seems to me that DYNAMIC:
> - is stuck with MD5/SHA1 algorithms
> - does not support loops
> ... but maybe I overlooked something.

Pull JtR source from git. It has had other 'large' hash support in dyna for a couple years now.  Here is a script for the above.  Yes, adding some form of looping and some variables would make this much easier, but I have looked at this problem for a couple years, and the complexity and very likely reduction in processing speed has put me off from adding it.

Jim.

[List.Generic:dynamic_1201]
Expression=BBerry-ESvr-10
Flag=MGF_SALTED
Flag=MGF_INPUT_64_BYTE
Flag=MGF_FLAT_BUFFERS
Func=DynamicFunc__clean_input
Func=DynamicFunc__append_keys
Func=DynamicFunc__append_salt
Func=DynamicFunc__LargeHash_OUTMode_raw
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_overwrite_input1
Func=DynamicFunc__SHA512_crypt_input1_to_output1_FINAL
Test=$dynamic_1201$e3126a8f133b6428a89ab375ffbbe73f6117c82a1886d75dadbd3a56d2d6b611b9a6703e44d9c97750fb1c489b82ce80cc2d00e1a11bfee2cb581a73c6af5491$salt:password


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.