将文本文件转换为C语言中的字符串,使用md5

时间:2017-05-14 14:13:42

标签: c string hash md5

我想读取一个文本文件,将其分开,然后散列分开的部分。

到目前为止,这是我的代码:

#define _GNU_SOURCE
#include "md5.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <omp.h>

#include <time.h>

#define HASH_LENGTH 16

int main (){

    unsigned char target[HASH_LENGTH] = {0x1c, 0x01, 0x43, 0xc6, 0xac, 0x75, 0x05, 0xc8, 0x86, 0x6d, 0x10, 0x27, 0x0a, 0x48, 0x0d, 0xec}; 
    time_t start = time(NULL);
    FILE* f;
    char c;

    f = fopen("testing.txt", "r");
    if(f == NULL){
        return 1;
                }

    while((c=fgetc(f))!=EOF){
            printf("%c",c);
                }
    fclose(f);

    //char string[] = f;
    const char* delim = " .,;-:0123456789?!\"*+()|&[]#$/%%'";
    char *ptr;

    ptr = strtok(string, delim);

    while(ptr != NULL) {


printf("found part: %s\n", ptr);
    ptr = strtok(NULL, delim);
}
/**
 * unsigned char hash[HASH_LENGTH] = {0};
 * char buffer[1024];

 * MD5_CTX md5_ctx;
 * MD5_Init(&md5_ctx);
 * MD5_Update(&md5_ctx, buffer, strlen(buffer));
 * MD5_Final(hash, &md5_ctx);
 **/

time_t end = time(NULL);
printf("Execution took ~%fs\n", difftime(end, start));
return 0;

}

到目前为止,我已阅读该文件并可以打印出来。接下来我想用分界符将它分成两个单词对(第一个和第二个单词作为一对,第三个和第四个,......)。因此我想使用strtok(),但我不知道如何将文件转换为字符串?

使用这些新的字符串对,我可以使用md5方法吗?

1 个答案:

答案 0 :(得分:1)

也许这个实现示例会有所帮助: https://pastebin.ubuntu.com/24575479/

Makefile可以在这里找到:https://pastebin.ubuntu.com/24575486/