O objetivo deste code-golf é criar um programa que aceita uma string como entrada e você deve gerar o valor de hash SHA-1 como um número hexadecimal. Você pode encontrar o pseudocódigo para SHA-1 aqui
Outras regras:
- Sem acesso à rede
- Você não tem permissão para executar programas externos
- Você não tem permissão para usar métodos internos para hash da entrada
- O código mais curto vence
- Só é necessário lidar com entrada ASCII
- A saída pode ser minúscula ou maiúscula
A entrada pode ser fornecida usando:
- Solicitando entrada
- Usando argumentos da linha de comando
- Usando STDIN
Casos de teste:
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
Apenas uma versão em golf do pseudocódigo.
fonte
.encode()
usa UTF-8 por padrão, que é ainda mais curto.D (759 caracteres)
Versão executável online: http://dpaste.dzfl.pl/f0c8508f
fonte
C, 546 caracteres
O programa calcula o SHA-1 do conteúdo de sua entrada padrão.
Algumas notas:
int
são exatamente 32 bits. Para plataformas onde esse não é o caso, aunsigned
declaração no início deve ser substituída pelo tipo de 32 bits não assinado da plataforma. (uint32_t
seria a escolha óbvia, se não exigisse#include <stdint.h>
.)^3
no programa e substituir a inicialização dek[]
pelo seguinte bloco:{19088743,0x89ABCDEF,0,1985229328,0xF0E1D2C3}
para um tamanho de 541 caracteres.char
não é assinado por padrão, é possível excluir o&255
que aparece na linha final para salvar mais quatro caracteres.fonte
be417768b5c3c5c1d9bcb2e7c119196dd76b5570
paraThe quick brown fox jumps over the lazy dog
mas tem que voltar2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
Meu código python é um pouco mais longo, mas está funcionando totalmente.
fonte
0xffffffff
) em variáveis (também, seria-1
suficiente?) ...h0..h4
ainda estão duas letras ;-)