El objetivo de este código de golf es crear un programa que tome una cadena como entrada, y debe generar el valor hash SHA-1 como un número hexadecimal. Puede encontrar el pseudocódigo para SHA-1 aquí
Otras reglas:
- Sin acceso a internet
- No tienes permiso para ejecutar programas externos
- No está permitido usar métodos integrados para hacer hash de la entrada
- El código más corto gana
- Solo es necesario manejar la entrada ASCII
- La salida puede ser minúscula o mayúscula
La entrada se puede proporcionar usando:
- Solicitud de entrada
- Usar argumentos de línea de comando
- Usando STDIN
Casos de prueba:
Input: The quick brown fox jumps over the lazy dog
Output: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
----------------------------------------------------------
Input: The quick brown fox jumps right over the lazy dog
Output: 1c3aff41d97ada6a25ae62f9522e4abd358d741f
------------------------------------------------------------
Input: This is a code golf challenge
Output: f52ff9edd95d98e707bd16a7dead459cb8db8693
Python 3 - 645 caracteres
Solo una versión de golf del pseudocódigo.
fuente
.encode()
usa UTF-8 por defecto, que es aún más corto.D (759 caracteres)
Versión ejecutable en línea: http://dpaste.dzfl.pl/f0c8508f
fuente
C, 546 caracteres
El programa calcula el SHA-1 del contenido de su entrada estándar.
Un par de notas:
int
son exactamente 32 bits. Para plataformas en las que este no es el caso, launsigned
declaración al principio debe ser reemplazada por el tipo de 32 bits sin signo de la plataforma. (uint32_t
sería la opción obvia, si no fuera necesario#include <stdint.h>
).^3
en el programa y reemplace la inicialización dek[]
con el siguiente bloque:,{19088743,0x89ABCDEF,0,1985229328,0xF0E1D2C3}
para un tamaño de 541 caracteres.char
no está firmado de forma predeterminada, se puede eliminar el&255
que aparece en la línea final para guardar cuatro caracteres más.fuente
be417768b5c3c5c1d9bcb2e7c119196dd76b5570
paraThe quick brown fox jumps over the lazy dog
pero tiene que regresar2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
Mi código de Python es un poco más largo pero está funcionando completamente.
fuente
0xffffffff
) en variables (¿también sería-1
suficiente?) ...h0..h4
siguen siendo dos letras ;-)