#!/usr/bin/python
def mysql_hash_password(password):
nr = 1345345333
add = 7
nr2 = 0x12345671
for c in (ord(x) for x in password if x not in (' ', '\t')):
nr^= (((nr & 63)+add)*c)+ (nr << 8) & 0xFFFFFFFF
nr2= (nr2 + ((nr2 << 8) ^ nr)) & 0xFFFFFFFF
add= (add + c) & 0xFFFFFFFF
return "%08x%08x" % (nr & 0x7FFFFFFF,nr2 & 0x7FFFFFFF)
if __name__ == '__main__':
import sys
if len(sys.argv) != 2:
print >> sys.stderr , 'Python Implementation of MySQL\'s old password hash'
print >> sys.stderr , 'Usage: %s password' % sys.argv[0]
sys.exit(1)
print mysql_hash_password(sys.argv[1])
Comments