La cadena de entrada puede ser una cadena Unicode. ¿La cadena de salida después de calcular SHA1 siempre devolverá caracteres ASCII?¿El SHA1 de una cadena siempre devuelve caracteres ASCII?
Respuesta
sha1 devuelve una cadena binaria. Algunas funciones sha1 pueden, por conveniencia, también codificar esa cadena binaria en hexadecimal o base64; de ser así, el resultado será caracteres ASCII. Pero sha1 en sí mismo no devuelve ASCII.
SHA1 devuelve 20 bytes. SHA1 no se ocupa de las codificaciones, texto ASCII, etc.
Una forma común para representar datos binarios es mediante la codificación en hexadecimal - en este caso, la salida es siempre [af] [0-9]
Depende, pero estrictamente hablando, no. La salida del hash SHA-1 es de 160 bits, o 20 bytes, pero no se garantiza que los bytes estén en el rango ASCII.
Sin embargo, algunas funciones hash producen el equivalente hexadecimal (es decir, 40 caracteres) de los 20 bytes, por lo que si los primeros tres bytes del hash real son 0x7e, 0x03 y 0xb2, la salida comenzaría con "7e03b2", en cuyo caso, la salida es ASCII.
- 1. Reemplazar caracteres no ASCII de la cadena
- 2. Eliminar caracteres no ASCII de una cadena usando python/django
- 3. Python regex para convertir caracteres no ascii en una cadena a los equivalentes ascii más cercanos
- 4. Reemplazar caracteres no ASCII de una cadena Unicode en Python
- 5. Normalización de caracteres ASCII
- 6. Bash: Convierte caracteres no ASCII a ASCII
- 7. Cómo escribir caracteres especiales ASCII en una cadena .Net
- 8. ¿JDBC ResultSet getString siempre devuelve una representación de cadena?
- 9. ¿std :: string :: c_str() siempre devuelve una cadena terminada en nulo?
- 10. Eliminar todos los caracteres no ASCII de la cadena
- 11. cadena literal de bytes con caracteres no ASCII
- 12. Quitar los caracteres no ASCII de cadena en Java
- 13. Mostrar caracteres ASCII extendidos
- 14. Convertir caracteres no ASCII de ASCII-8BIT a UTF-8
- 15. Codificando una cadena para ascii
- 16. Cómo convertir una cadena C (matriz char) en una cadena Python cuando hay caracteres no ASCII en la cadena?
- 17. ¿DateTime.ToString ("s") devuelve siempre el mismo formato?
- 18. Convertir una cadena Unicode en una cadena ASCII de escape
- 19. Ruby: carácter de ASCII de una cadena
- 20. Caracteres no ASCII en Matplotlib
- 21. Caracteres no ASCII en C
- 22. ¿jQuery siempre devuelve array?
- 23. isAvailableForServiceType siempre devuelve verdadero?
- 24. PrincipalContext.ValidateCredentials siempre devuelve FALSE
- 25. getDrawingCache() siempre devuelve nulo
- 26. getsockname siempre devuelve 0.0.0.0?
- 27. Android LocationManager.isProviderEnabled() siempre devuelve falso
- 28. NSLocale siempre devuelve en_US
- 29. sd.canWrite() devuelve siempre falsas
- 30. Devuelve los primeros N caracteres de la cadena
Para exponer sobre esto, SHA1 devuelve un número (grande). Algunos eligen representar ese número como una cadena de caracteres hexadecimales. Sin embargo, si llama a una biblioteca que tiene una función SHA1, no necesariamente espera que le devuelva una cadena ASCII. Siempre RTFM. –