Il corto è che non puoi.
Gli hash non producono caratteri codificati. Emettono byte e dovrebbe apparire una buona funzione di hash per generare tutti i byte di output in modo casuale.
Spesso, gli output di hash vengono successivamente codificati per la lettura da parte degli umani o per la compatibilità; ad esempio, come hex o base64. Ma i eventuali dati possono essere codificati in questo modo, e non c'è modo di distinguere l'output di un hash.
Se vedete 256 bit di dati apparentemente casuali, potrebbe essere un hash (ad esempio, SHA-256 o BLAKE2b / 256), da 128 a 255 bit di dati crittografati con un codice a blocchi a 128 bit (ad es. AES- CBC), 256 bit di dati crittografati con un codice di flusso (ad esempio, AES-CTR), dati puramente casuali (ad esempio, uscita da /dev/random
), output da un DRBG (ad esempio, il Yarrow CSPRNG) o uno qualsiasi di un numero di altre possibilità. L'unico modo per saperlo è attraverso il contesto.