我想读取一个文本文件,将其分开,然后散列分开的部分。
到目前为止,这是我的代码:
#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方法吗?
答案 0 :(得分:1)
也许这个实现示例会有所帮助: https://pastebin.ubuntu.com/24575479/
Makefile可以在这里找到:https://pastebin.ubuntu.com/24575486/