Lo mínimo es que no puedes.
Los hash no generan caracteres codificados. Generan bytes , y parece que una buena función hash genera todos sus bytes de salida al azar.
A menudo, las salidas de hash se codifican más tarde para que los humanos las lean o por compatibilidad; por ejemplo, como hex o base64. Pero los datos de cualquier se pueden codificar de esta manera, y no hay manera de distinguir la salida de un hash.
Si ve 256 bits de datos aparentemente aleatorios, podría ser un hash (por ejemplo, SHA-256 o BLAKE2b / 256), de 128 a 255 bits de datos cifrados con un cifrado de bloque de 128 bits (por ejemplo, AES CBC), 256 bits de datos cifrados con un cifrado de flujo (por ejemplo, AES-CTR), datos puramente aleatorios (por ejemplo, salida de /dev/random
), salida de un DRBG (por ejemplo, Yarrow CSPRNG), o cualquiera de un número de otras posibilidades. La única manera de saberlo con seguridad es a través del contexto.