2012-08-09 114 views
6

Estoy ejecutando un servicio que usa SHA-256 en dos lados de la aplicación: una es una implementación de PHP del lado del servidor y la otra es una implementación de iOS del lado del cliente. El resultado del uso del algoritmo en ambos lados es la misma cadena alfanumérica, excepto por el hecho de que todas las letras se escriben con mayúscula en iOS y minúsculas en PHP. El hecho de que sean cadenas alfanuméricas idénticas me lleva a creer que SHA-256 no distingue entre mayúsculas y minúsculas, pero no puedo encontrar ninguna documentación que respalde mi suposición. ¿Alguien puede mostrarme documentación para confirmar esto?¿SHA-256 es insensible a las mayúsculas y minúsculas?

+1

posible duplicado de [¿Cuál es el formato de salida de SHA256] (http://stackoverflow.com/questions/6532606/what-is-the-output-format-of-sha256) –

Respuesta

14

Si se refiere a una salida de cadena hexadecimal, entonces sí, eso no distingue entre mayúsculas y minúsculas. Es una representación textual de datos binarios.

http://en.wikipedia.org/wiki/Hexadecimal

El algoritmo en sí es definitivamente entre mayúsculas y minúsculas.

0

Todas las series SHA son algoritmos binarios que no saben nada sobre el caso, por lo que no pueden ser sensibles a las mayúsculas y minúsculas.
Puede simplemente probar esto en una sola máquina con 2 salidas de una cadena con diferentes casos y puede ver que proporcionan diferentes resultados.
En su caso creo que si todo está bien, posiblemente iOS muestran cadena capitalizado en el teléfono, pero internamente se pasa normal (en minúsculas) cadena

2

Sin función hash criptográfica decente es sensible a mayúsculas, porque entonces sería ser mucho más fácil de producir una colisión. La salida es una cuestión diferente. Básicamente es un número grande (por lo que la caja no se aplica a), pero por comodidad se da en la base 16, es decir, usando las letras aa f como dígitos adicionales. La notación hexadecimal es, de hecho, insensible a mayúsculas y minúsculas, o al menos las variantes en mayúscula y minúscula son comunes y reconocidas. No importa y no cambia qué número está representado.

2

Si la representación binaria de la entrada es la misma en ambos lados, la representación binaria del valor hash será la misma. Hex no distingue entre mayúsculas y minúsculas.

Cuestiones relacionadas