📄 shasum.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sha2.h"
#define BUF_SIZE 16384
int main(int argc, char *argv[])
{ FILE *inf;
sha256_ctx ctx[1];
unsigned char buf[BUF_SIZE], hval[SHA256_DIGEST_SIZE];
int i, len, is_console;
if(argc != 2)
{
printf("\nusage: shasum filename\n");
exit(0);
}
if(is_console = (!strcmp(argv[1], "con") || !strcmp(argv[1], "CON")))
{
if(!(inf = fopen(argv[1], "r")))
{
printf("\n%s not found\n", argv[1]);
exit(0);
}
}
else if(!(inf = fopen(argv[1], "rb")))
{
printf("\n%s not found\n", argv[1]);
exit(0);
}
sha256_begin(ctx);
do
{
len = (int)fread(buf, 1, BUF_SIZE, inf);
i = len;
if(is_console)
{
i = 0;
while(i < len && buf[i] != '\x1a')
++i;
}
if(i)
sha256_hash(buf, i, ctx);
}
while
(len && i == len);
fclose(inf);
sha256_end(hval, ctx);
printf("\n");
for(i = 0; i < SHA256_DIGEST_SIZE; ++i)
printf("%02x", hval[i]);
printf("\n");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -