Christian Heimes wrote:
PK schrieb:
Given a checksum value, whats the best way to find out what type it is?

meaning. I can use hashlib module and compute a md5 or sha1 for a given data
etc..but given a checksum value say "d2bda52ee39249acc55a75a0f3566105" whats
the best way for me to identify if its a sha1 or md5 or anyother sum type
for that matter?

is there a nice way to do this in python?

As far as I know there is no way to identify a checksum by its value. A
checksum is just a number. You can try an educated guess based on the
length of the checksum. Or you can try all hash algorithms until you get
a hit but that may lead to security issues.

Some applications prefix the hash value with an identifier like "{MD5}"
or "{SHA1}".

Christian

fortunately, the hashlib checksums can be distinguished by their length
On the newly minted 3.1:
    import hashlib
    text = b'BDFL forever; FLUFL for frequently'
    for name in 'md5 sha1 sha224 sha256 sha384 sha512'.split():
        result = getattr(hashlib, name)(text).hexdigest()
        print('%6s:%3d %s' % (name, len(result), result))

   md5: 32 457484d2817fbe475ab582bff2014e82
  sha1: 40 242076dffbd432062b439335438f08ba53387897
sha224: 56 89c0439b1cf3ec7489364a4b8e50b3ba196706eecdb5e5aec6d6290f
sha256: 64 e10938435e4b5b54c9276c05d5f5d7c4401997fbd7f27f4d4...807d
sha384: 96 3fe7c7bf3e83d70dba7d59c3b79f619cf821a798040be2177...edb7
sha512:128 fe50d9f0c5780edb8a8a41e317a6936ec6305d856c78ccb8e...1fa0

You'll have to guess for adler32 vs. crc32 vs. seeded crc32, ...

--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to