加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
sha256.c 873 Bytes
一键复制 编辑 原始数据 按行查看 历史
htkd 提交于 2024-06-20 17:06 . htkd: new puts done
#include "client.h"
#include <openssl/evp.h>
#include <openssl/err.h>
char* getSHA256(const char* filePath){
int fd = open(filePath, O_RDONLY);
EVP_MD_CTX* mdctx;
const EVP_MD* md;
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len;
unsigned char buf[1024];
size_t bytes;
OpenSSL_add_all_digests();
md = EVP_get_digestbyname("SHA256");
mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, md, NULL);
while ((bytes = read(fd, buf, sizeof(buf))) != 0){
EVP_DigestUpdate(mdctx, buf, bytes);
}
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
EVP_MD_CTX_free(mdctx);
close(fd);
char* sha256_str = (char*)calloc(65, sizeof(char));
for (unsigned int i = 0; i < md_len; i++) {
sprintf(&sha256_str[i * 2], "%02x", md_value[i]);
}
EVP_cleanup();
return sha256_str;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化