21 lines
765 B
Python
21 lines
765 B
Python
import hashlib
|
|
import struct
|
|
import skein
|
|
|
|
def skeinhash(msg):
|
|
return hashlib.sha256(skein.Skein512(msg[:80]).digest()).digest()
|
|
|
|
def skeinhashmid(msg):
|
|
s = skein.Skein512(msg[:64] + '\x00') # hack to force Skein512.update()
|
|
return struct.pack('<8Q', *s.tf.key.tolist())
|
|
|
|
if __name__ == '__main__':
|
|
mesg = "dissociative1234dissociative4567dissociative1234dissociative4567dissociative1234"
|
|
h = skeinhashmid(mesg)
|
|
print h.encode('hex')
|
|
print 'ad0d423b18b47f57724e519c42c9d5623308feac3df37aca964f2aa869f170bdf23e97f644e81511df49c59c5962887d17e277e7e8513345137638334c8e59a4' == h.encode('hex')
|
|
|
|
h = skeinhash(mesg)
|
|
print h.encode('hex')
|
|
print '764da2e768811e91c6c0c649b052b7109a9bc786bce136a59c8d5a0547cddc54' == h.encode('hex')
|