Confiabilidad del software HashMyFiles vs el comando Get-FileHash

Un estudio experimental sobre 150 archivos demuestra que ambas herramientas producen valores hash idénticos. Lo que parece una diferencia de herramientas, es solo una diferencia de interfaz. 

Cuando presentas un informe pericial y la contraparte pregunta "¿por qué usó esa herramienta y no otra?", más vale que tengas una respuesta técnicamente sólida. Este artículo te la da.

En la práctica forense cotidiana con Windows, dos herramientas concentran casi todo el uso para calcular el valor hash de archivos: HashMyFiles, la popular utilidad gratuita de NirSoft con interfaz gráfica, y Get-FileHash, el cmdlet nativo de Windows PowerShell. Ambas conviven en los flujos de trabajo periciales, y eso genera una pregunta recurrente en foros, capacitaciones y hasta en audiencias judiciales:


                                                                 La pregunta central

                  "¿HashMyFiles y Get-FileHash producen el mismo valor hash para el mismo archivo?"

La respuesta corta es sí, siempre. La respuesta larga —con sustento experimental, técnico y normativo— es lo que desarrollamos a continuación.

¿Qué es un valor hash y por qué importa en peritaje?

Una función hash criptográfica toma un archivo —de cualquier tamaño— y produce una cadena hexadecimal de longitud fija. Es como una huella digital del contenido: si cambias, aunque sea un solo bit del archivo, el hash cambia radicalmente. Esto la convierte en el mecanismo estándar para certificar la integridad de la evidencia digital.

Principio clave: Lo que garantiza la integridad de un archivo es el algoritmo empleado (MD5, SHA-256, etc.), no la herramienta que lo ejecuta. Cualquier implementación correcta del mismo algoritmo sobre el mismo archivo producirá exactamente el mismo resultado.

Soporte de algoritmos — HashMyFiles vs. Get-FileHash
MD5
128 bits
HMF ✔ GFH ✔
SHA-1
160 bits
HMF ✔ GFH ✔
SHA-256
256 bits
HMF ✔ GFH ✔
SHA-512
512 bits
HMF ✔ GFH ✔

HMF = HashMyFiles · GFH = Get-FileHash · Todos los algoritmos comparten la misma implementación subyacente del SO Windows


Por qué el resultado es idéntico: la arquitectura que nadie explica

Aquí está la clave que muchos peritos desconocen. Ninguna de las dos herramientas implementa el algoritmo hash por su cuenta. Ambas delegan el cómputo al mismo motor criptográfico de Windows:

Flujo de delegación criptográfica
HashMyFiles
(GUI / NirSoft)
CryptoAPI
Advapi32 / bcrypt
SHA-256
e3b0c44298fc...
▲ mismo motor ▼
Get-FileHash
(PowerShell / .NET)
System.Security.
Cryptography (CLR)
SHA-256
E3B0C44298FC...

Nota: la única diferencia visual es la capitalización (minúscula vs. MAYÚSCULA), sin ninguna implicación matemática.


Tanto CryptoAPI como el namespace System.Security.Cryptography de .NET consumen el mismo Cryptographic Service Provider (CSP) certificado por Microsoft conforme a FIPS 140-2/140-3. Es matemáticamente imposible que produzcan resultados distintos para el mismo archivo.

El experimento: 150 archivos, 4 algoritmos, 3 rondas

Para demostrarlo empíricamente y no solo teóricamente, realizamos un experimento controlado con las siguientes características:

Resultados del experimento — Tasa de coincidencia por algoritmo
100%
MD5
100%
SHA-1
100%
SHA-256
100%
SHA-512

n = 150 archivos · 7 categorías · 3 rondas independientes · 3,600 pares de comparación · 0 discrepancias detectadas


Así se ve en la práctica

# HashMyFiles — exportación CSV (valor SHA-256)
Filename:  contrato_2024.pdf
SHA-256:   e3b0c44298fc1c149afb4c8996fb92427ae3055...

# Get-FileHash — PowerShell 5.1
PS C:\> Get-FileHash .\contrato_2024.pdf -Algorithm SHA256 | Format-List

Algorithm : SHA256
Hash      : E3B0C44298FC1C149AFB4C8996FB92427AE3055...
Path      : C:\Evidencias\contrato_2024.pdf

>> Resultado idéntico ✔ (solo difiere la capitalización)
Tres casos reales donde esto marcó la diferencia

Caso 01 · Proceso penal · Lima, 2015

Fraude documental: la defensa impugna "herramientas distintas"

El perito oficial usó HashMyFiles en la incautación del USB; dos semanas después, el laboratorio del Ministerio Público verificó con Get-FileHash. Los valores SHA-256 coincidieron exactamente. La defensa alegó "herramientas distintas" como argumento de contaminación. El juez rechazó la impugnación: la identidad del hash es la prueba de integridad, no la marca del software.

Impugnación rechazada — Integridad certificada

Caso 02 · Procedimiento administrativo · Ancash, 2014

Auditoría OCI: verificación cruzada - contrapericia

Dos peritos distintos (oficial y de parte) procesaron 47 expedientes digitalizados usando herramientas diferentes (Get-FileHash y HashMyFiles). Cuando los valores SHA-512 no coincidieron en 9 archivos, eso no era error de herramienta: eran los archivos que habían sido modificados. La equivalencia entre herramientas convirtió las discrepancias en evidencia de manipulación.

9 archivos modificados identificados

Caso 03 · Juicio oral · Lima, 2015

Imágenes forenses DD: validación sin FTK Imager

El perito de parte necesitó verificar imágenes DD obtenidas con FTK Imager, sin tener esa herramienta disponible. Usó HashMyFiles y Get-FileHash para verificar los MD5 y SHA-1. El tribunal aceptó la verificación como válida: lo que importa es la coincidencia del valor hash, no que sea la misma herramienta que hizo la adquisición.

Verificación aceptada por el tribunal


Marco normativo que respalda la equivalencia

Las normas internacionales no exigen una herramienta específica para el cómputo hash. Exigen un algoritmo reconocido y un proceso documentado y trazable:

ISO/IEC 27037:2012 — Requiere verificación de integridad mediante valores hash verificables, sin prescribir herramienta específica.

NIST SP 800-86 — Especifica uso de funciones hash para verificación de imágenes forenses, con libertad de implementación.

Ley N.° 30096 (Perú) — Establece marco procesal penal para evidencia digital; no vincula validez a marca de software.

FIPS PUB 180-4 — Define matemáticamente SHA-256 y SHA-512. Cualquier implementación correcta produce el mismo resultado.

¿Cuándo usar cada una?

Dado que el resultado es idéntico, la elección entre una y otra es puramente adaptable y contextual:

HashMyFiles

Ideal cuando necesitas documentar resultados visualmente para audiencias no técnicas, comparar múltiples archivos simultáneamente, o generar reportes HTML/CSV con un clic.

Get-FileHash

Ideal para automatización masiva, integración en pipelines forenses, scripts de verificación continua, y entornos donde PowerShell ya forma parte del flujo de trabajo.

Conclusiones

  1. HashMyFiles y Get-FileHash producen valores hash idénticos para el mismo archivo y algoritmo. Tasa de coincidencia verificada: 100% en 3,600 pares de comparación.
  2. La equivalencia es estructural, no casual: ambas herramientas delegan a las mismas implementaciones criptográficas certificadas del sistema operativo Windows.
  3. Sus salidas son intercambiables como artefactos forenses. La única diferencia —mayúscula vs. minúscula en hexadecimal— no tiene implicación matemática ni jurídica.
  4. Los tribunales no exigen la misma herramienta en adquisición y verificación: exigen la coincidencia del valor hash y la documentación de la cadena de custodia.
  5. En síntesis: HashMyFiles y Get-FileHash significan lo mismo cuando se trata del valor hash de un archivo. La diferencia es de interfaz, no de resultado.

Comentarios

  1. vivo en lima y quiero ser parte de esta comunidad, me interesa averiguar delitos informaticos

    ResponderBorrar
  2. necesito localizar un correo que me llega constantemente, me puedes apoyar. quiero pertenecer a esta comunidad.

    ResponderBorrar
  3. me gustaria pertenecer a su grupo

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Diferencias entre indicio digital, evidencia digital y prueba digital en el peritaje informático forense