Is er een manier om te achterhalen welk type encryptie/encodering wordt gebruikt?
Ik ben bijvoorbeeld een web applicatie aan het testen die het wachtwoord in een versleutelde vorm in de database opslaat (WeJcFMQ/8+8QJ/w0hHh+0g==
). Hoe bepaal ik welke hashing of encryptie wordt gebruikt?
Edit: Ik zag net een heel cool script met de naam hashID. De naam beschrijft het vrij goed.
Over het algemeen is het gebruik maken van ervaring om educated guesses te maken de manier waarop deze dingen worden gedaan.
Hier is een lijst met een zeer groot aantal hash-uitgangen, zodat je weet hoe elke uitgang eruit ziet en handtekeningen/patronen kunt maken of gewoon optisch kunt verifiëren.
- [Online Hash Crack Hashes Generator](https://www.onlinehashcrack.com/hash-generator.php)
- [InsidePro Software Forum > Hash Types](https://web.archive.org/web/20160403135857/https://forum.insidepro.com/viewtopic.php?t=8225) (via Archive.org)
Er zijn twee *belangrijkste* dingen waar je eerst op moet letten:
- de lengte van de hash (elke hashfunctie heeft een specifieke uitvoerlengte)
- het gebruikte alfabet (zijn het allemaal engelse letters? cijfers 0-9 en A-F dus hex? welke speciale tekens zijn er als die er zijn?)
Verschillende programma's om wachtwoorden te kraken (John the ripper bijvoorbeeld) passen patronen toe op de invoer om het gebruikte algoritme te raden, maar dit werkt alleen op algemene hashes. Als je bijvoorbeeld een hash-uitvoer neemt en elke letter met 1 draait, zullen de meeste patroonherkenningsprogramma's falen.
De enige manier is gissen. Met ervaring zal het giswerk juister worden.
Bijvoorbeeld: Gebaseerd op de lengte van de output: MD5 uitvoer is 128 bits, of 16 bytes, SHA1 uitvoer is 160 bits, of 20 bytes. Gebaseerd op karakterset van uitvoer: BASE64 produceert uitvoer met afdrukbare tekens.
Uiteindelijk is het de try-and-error aanpak die je leert hoe het moet.
De enige manier is als er metadata zijn die je dat vertellen. Bijvoorbeeld, ik heb de laatste tijd met PDF's gewerkt, en het formaat bevat een woordenboek met het filter, algoritme, sleutelgrootte enz. Maar als je alleen de cijfertekst hebt, dan is alles wat je hebt een ondoorzichtige klodder gegevens.