Python ile Hash function'ları kullanma
Merhaba arkadaşlar bugün python ile yazmış olduğum scripte parametre olarak hedef hash'lenecek metin türünü daha sonra metni ve son olarakta encrypt yada decrypt seçeneği seçtiğinizde işlemleri yapmaya çalışan script'in amacını , kodlarını ve video ile kullanımı göstereceğim.Haydi bir giriş yapalım...
Arkadaşlar bu scripteki amacım şuydu.Daha önceleri 2 kere BUSİBER'e katıldım ve 2 kere'de hash'leme ile alakalı bir soru denk gelmişti ve hatta son girdiğimde sezar şifrelemesi ile alakı bir soru vardı. Bende bu tarz CTF'lerde işe yaracak olan bir script yazmak istedim çünkü CTF'de zaman çok hızlı akıyor ve eğer önceden bir hazırlığınız yoksa süre yetiştiremiyorsunuz.Bu script'de ben Caesar şifrelemesini elle yazdım diğerlerini API kullanarak yaptım.Bu script'in çalışması için "http://md5decrypt.net" görmüş olduğunuz linke üye olup karşınlığında API key script'de uygun yazdığında problem kalmayacaktır.
Kötü kod yazdığım için üzgünüm.Daha iyi bir yazılımcı olmak için yazılım geliştirme ve problem çözme yeteneğim üzerinde hala uğraşmaktayım.
#Hash-Function.py # -*- coding: utf-8 -*- import requests import argparse import string def Encode(HashStr ,HashType): Hash = HashStr Hash_type = HashType E_Mail = "API_KEY için i-mail bilgisi" KEY = "API_KEY" response = requests.get("http://md5decrypt.net/Api/api.php?mot="+Hash+"&hash_type="+Hash_type+"&email="+E_Mail+"&code="+KEY) print Hash," --> ",response.text def Decode(HashStr ,HashType): Hash = HashStr Hash_type = HashType E_Mail = "API_KEY için i-mail bilgisi" KEY = "API_KEY" response = requests.get("http://md5decrypt.net/Api/api.php?hash={}&hash_type={}&email={}&code={}". format(Hash,Hash_type,E_Mail,KEY)) print Hash, " -->" , response.text def EnSezar(HashStr): temp = "" alp = list(map(lambda x : x ,string.ascii_letters )) alp = alp[:26] *2 shift = input("Enter the key :") shift %=26 for i in HashStr: temp+= alp[alp.index(i) +shift] print temp def DeSezar(HashStr): temp = "" alp = list(map(lambda x: x, string.ascii_letters)) alp = alp[:26]*2 shift = input("Enter the key :") shift %= 26 for i in HashStr: temp += alp[alp.index(i,1) - shift] print temp if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--t", "--type", help="Please enter the hash type {Caesar , MD4 , MD5 ,SHA1 , SHA256 , SHA512}") parser.add_argument("--h", "--hash", help="Please enter the hash") parser.add_argument("--e" ,"--encrpt" , action='store_false' , help="Encode") parser.add_argument("--d", "--decrpt" , action='store_false' , help="Decode") args = parser.parse_args() Hashtype = (args.t).lower() HashStr = args.h if Hashtype == "caesar" and args.e==False: EnSezar(HashStr) elif Hashtype == "caesar" and args.d==False: DeSezar(HashStr) elif args.e == False: Encode(HashStr,Hashtype) elif args.d ==False: Decode(HashStr, Hashtype)
Yukarıda paylaşmış olduğum kodda bir sıkıntı yada yapılabilecek iyileştirmeler için bana ulaşabilirseniz çok sevinirim.Okuduğunuz için çok teşekkür ederim.Esen kalın :)