31 lines
		
	
	
	
		
			837 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			837 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import time
 | 
						|
 | 
						|
MASK32 = 0xFFFFFFFF
 | 
						|
 | 
						|
def hash_gen(s: str, h: int, mult: int):
 | 
						|
    """Compute hash of the whole string, print it each loop iteration, repeat."""
 | 
						|
    try:
 | 
						|
        while True:
 | 
						|
            cur = h & MASK32
 | 
						|
            for ch in s:
 | 
						|
                cur = (cur * mult + ord(ch)) & MASK32
 | 
						|
            cur ^= (cur >> 16)
 | 
						|
            cur = (cur * 0x85ebca6b) & MASK32
 | 
						|
            cur ^= (cur >> 13)
 | 
						|
            print(f"Hash: {cur:#010x}")
 | 
						|
            h = cur
 | 
						|
            time.sleep(2)
 | 
						|
    except KeyboardInterrupt:
 | 
						|
        print("\nStopped.")
 | 
						|
 | 
						|
def main():
 | 
						|
    hash_init = int(input("Enter initial Hash value: "))
 | 
						|
    hash_mult = int(input("Enter Hash Multiplier: "))
 | 
						|
 | 
						|
    s = input("Enter String to Hash: ")
 | 
						|
    print("Welcome to the Hash Generator™: ")
 | 
						|
    hash_gen(s, hash_init, hash_mult)
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    main()
 | 
						|
 |