admin管理员组文章数量:1532357
2023年12月12日发(作者:)
c语言对字符串进行sha1,C语言openssl库SHA1调用
1.源码实现
#include
#include
#include
#include
#define MAX_DATA_LEN 1024
#define SHA1_LENTH 20
int main(int argc, char **argv)
{
SHA_CTX sha1_ctx;
FILE *fp = NULL;
char *strFilePath = argv[1];
unsigned char SHA1result[SHA1_LENTH];
char DataBuff[MAX_DATA_LEN];
int len;
int t = 0;
int i;
fp = fopen(strFilePath, "rb"); //打开文件
do
{
SHA1_Init(&sha1_ctx);
while(!feof(fp))
{
memset(DataBuff, 0x00, sizeof(DataBuff));
len = fread(DataBuff, 1, MAX_DATA_LEN, fp);
if(len)
{
t += len;
//printf("len = [%d] 1n", len);
SHA1_Update(&sha1_ctx, DataBuff, len); //将当前文件块加入并更新SHA1
}
}
//printf("len = [%d]n", t);SHA1_Final(SHA1result,&sha1_ctx); //获取SHA1
puts("file SHA1:");
for(i = 0; i
{
printf("%02x", (int)SHA1result[i]);
}
puts("n");
} while(0);
SHA1((const unsigned char*)strFilePath, strlen(strFilePath), SHA1result); //获取字符串SHA1
puts("string SHA1:");
for(i = 0; i < SHA1_LENTH; i++)
{
printf("%02x", (int)SHA1result[i]);
}
puts("n");
return 0;
}
2.编译源码
$ gcc -I$HOME/local/include -o example example.c -L$HOME/local/lib -lssl
3.运行结果
$ ./example file
file SHA1:
52d87199fb07eae526d404d6527fdbe0d2a9315b
string SHA1:
1b6453892473a467d07372d45eb05abc2031647a
版权声明:本文标题:c语言对字符串进行sha1,C语言openssl库SHA1调用 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1702347048a2288.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论