From c694e1a1a48bc8fa051bfda68890c4f4f333399c Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 12 Dec 2021 03:50:17 -0500 Subject: [PATCH] init! --- miner.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ readme.txt | 2 ++ 2 files changed, 55 insertions(+) create mode 100644 miner.py create mode 100644 readme.txt diff --git a/miner.py b/miner.py new file mode 100644 index 0000000..f28bf40 --- /dev/null +++ b/miner.py @@ -0,0 +1,53 @@ +from hashlib import sha256 +from random import choice +from threading import Thread +import time +_B64SIZE = 76 +_ALLCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" +HASHES_CHECKED = 0 +HASHES_COLLECTED = 0 +HASHES = {} + +def hex2nhex(inp): + inp = inp.lower() + reps = {"a":"n", "b":"i", "c":"g", "e":"r", "d":"e", "f":"o"} + for rep in reps: + inp = inp.replace(rep, reps[rep]) + return inp +def save(): + global HASHES + while True: + time.sleep(10) + if len(HASHES) == 0: continue + buf = "" + for h in HASHES: + buf += ":".join([h, hex2nhex(HASHES[h])])+"\n" + f = open("NGRwallet", "a") + f.write(buf) + f.close() + HASHES = {} + +def progress(): + while True: + start = HASHES_CHECKED + time.sleep(10) + end = HASHES_CHECKED + print("hashes found:", HASHES_COLLECTED,"\nhashes checked:", HASHES_CHECKED, "\nhashes per second:", (end-start)/10) +def brute(): + global HASHES_CHECKED + global HASHES_COLLECTED + while True: + b64 = "" + for i in range(0, _B64SIZE): + b64 += choice(_ALLCHARS) + hashed = sha256(b64.encode("ascii")).hexdigest() + HASHES_CHECKED += 1 + if "abccde" in hashed: + HASHES[b64] = hashed + HASHES_COLLECTED += 1 +def main(): + Thread(target=brute, args=()).start() + Thread(target=progress, args=()).start() + Thread(target=save, args=()).start() +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..3745e5b --- /dev/null +++ b/readme.txt @@ -0,0 +1,2 @@ +python miner for the NGR token +very poor performance, use another one that is lower-level and better optimized even if your usecase specifically matches mine