Skip to content

Instantly share code, notes, and snippets.

@Gu1nness
Created June 30, 2020 09:52
Show Gist options
  • Save Gu1nness/3ae47de2fe23c8e91434a8f099288586 to your computer and use it in GitHub Desktop.
Save Gu1nness/3ae47de2fe23c8e91434a8f099288586 to your computer and use it in GitHub Desktop.
A small script to merge input and output files from hashcat
#!/usr/bin/env python3
"""
Author: Guinness
Date: 30/06/2020
Licence: GPLv3
"""
FILENAME_CRACKED = "cracked.txt"
FILENAME_ORIGINAL = "original.txt"
def parse_cracked_file(filename):
""" Parse the cracked file and outputs a dict.
"""
cracked_dict = {}
with open(filename, mode="r") as cracked_file:
data = cracked_file.read().splitlines()
for line in data:
splitted = line.split(":")
cracked_dict[splitted[0]] = splitted[1]
return cracked_dict
def parse_original_data(filename, cracked):
""" Parse the original file line per line, compares it to the cracked dict and outputs a dict.
"""
full_dict = {}
with open(filename, mode="r") as original_data:
for line in original_data:
cleaned = line.strip()
splitted = cleaned.split()
if cracked[splitted[1]]:
full_dict[splitted[1]] = (cracked[splitted[1]], splitted[0])
return full_dict
def main():
""" Main function, output everything to a file.
"""
cracked_dict = parse_cracked_file(FILENAME_CRACKED)
output_dict = parse_original_data(FILENAME_ORIGINAL, cracked_dict)
with open("full_output.txt", mode="w") as output:
for key, value in output_dict.items():
output.write("%s:%s:%s\n" % (key, value[0], value[1]))
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment