Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import sys
- import os
- import string
- import random
- import fileinput
- if sys.version_info < (2, 5):
- import md5
- else:
- from hashlib import md5
- def random_str(y):
- return "".join(random.choice(string.ascii_letters) for x in range(y))
- m = md5()
- with open(__file__) as f:
- file_content = f.read()
- if sys.version_info >= (3,):
- m.update(file_content.encode())
- else:
- m.update(file_content)
- print("Name: %s" % os.path.basename(__file__))
- print("Size: %d bytes" % os.stat(__file__).st_size)
- print("Hash: %s" % m.hexdigest())
- print("""On each run file changes its size, hash sum and filename.
- It's impossible to find it then.
- It's not like itself now. Each copy has its own identity.""")
- file_rows = file_content.rstrip("\n").split("\n")
- file_rows[-1] = ("### LAST HASH: %s RANDOM STR: %s" % (
- m.hexdigest(), random_str(random.randint(1, 255))))
- with open(__file__, "w") as f:
- f.write("\n".join(file_rows))
- basedir = os.path.dirname(__file__)
- new_name = random_str(10)
- os.rename(__file__, "%s.py" % os.path.join(basedir, new_name))
- if sys.version_info >= (3,):
- input("Press enter ")
- else:
- raw_input("Press enter ")
- ### LAST HASH: b04f380f30bfdcc6e8bd53cad7fdd96c RANDOM STR: eSZGCFFnAxRuOtpbIJhyQRayCvUXmIVzPBDvxYFYRVsiJwwFMWylmAvMcXyAcskRmSskcikljwQumhOVQkBaKokPvLfCfmJKnYMwdqxvsQANABbiqtTBXWMkOCfqrmjKRWgjzZzvwRepmLjRAlODTPvUljdIpSKxuZXUbrcQEDTf
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement