Навеяло вот предыдущим постом. Накатал небольшую программку на C, которая читает строку со стандартного входа и выдаёт на выходе строку хеша MD5.
md5digest.c
Makefile
Код под лицензией GPL v3.
Скачать исходный код: md5digest_util.zip
#include <stdio.h>
#include <openssl/md5.h>
#define VERSION "0.1"
void usage(void);
int main(int argc, char* argv[])
{
if (!argv[1])
{
usage();
return 0;
}
unsigned char *m_arg = (unsigned char *)argv[1];
unsigned int i = 0;
while (m_arg[i] != '\0')
i++;
unsigned char *digest = MD5(m_arg, i, NULL);
printf("MD5 digest: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n",
digest[0], digest[1], digest[2], digest[3],
digest[4], digest[5], digest[6], digest[7],
digest[8], digest[9], digest[10], digest[11],
digest[12], digest[13], digest[14], digest[15]);
return 0;
}
void usage(void)
{
printf("MD5 digest generator v%s.\nUsage: md5digest STRING\n\nResult is md5 hash of STRING.\n\nmd5digest Copyright (C)2008 Nik S Denin\nThis program comes with ABSOLUTELY NO WARRANTY.\nThis is free software, and you are welcome to redistribute it\nunder certain conditions.\n", VERSION);
}
#undef VERSIONMakefile
CC = gcc CFLAGS = -Wall -pipe LDFLAGS = -lcrypto EXEC_NAME = md5digest SOURCES = $(wildcard *.c) all: $(SOURCES) $(CC) $(CFLAGS) $(LDFLAGS) -o $(EXEC_NAME) $< install: cp $(EXEC_NAME) /usr/local/bin/$(EXEC_NAME) uninstall: rm -f /usr/local/bin/$(EXEC_NAME) .PHONY : clean clean: rm -f $(EXEC_NAME)
Код под лицензией GPL v3.
Скачать исходный код: md5digest_util.zip

Комментировать