【发布时间】:2019-08-31 20:12:49
【问题描述】:
我需要一种方法,通过该方法可以将此哈希函数的输出与位于单独文件中的字符串进行比较,但输出通常定义为printf("%02x", c[i]);(注释所在的位置)。这种格式不适用于比较,我不确定如何从本质上调整这种格式。
FILE *ftest=fopen(hashInBuf, "rb");
SHA512_Init (&mdContext);
while ((bytes = fread (data, 1, 1024, ftest)) != 0)
SHA512_Update (&mdContext, data, bytes);
SHA512_Final (c,&mdContext);
if(access(hashOutBuf, F_OK) != -1){
for(i = 0; i < SHA512_DIGEST_LENGTH; i++){
//METHOD TO COMPARE WITH TO EXISTING HASH FILE (stored in seperate folder)
}
}
文件中的字符串是这个散列函数的输出(使用fprintf(*file, "%02x", c[i]); 存储)——它位于上面的注释位置。先感谢您。
【问题讨论】:
-
我不确定我是否理解问题所在。您要比较哪些变量?你不能用
sscanf("%2x")解析十六进制值,然后比较数字吗?或者sprintf("%02x")将数字转换为字符串然后使用strcmp()?
标签: c arrays hash file-io strcmp