C语言Crypto++库SHA1哈希计算函数替代方案
以下是使用C语言和OpenSSL库编写的类似函数,用于计算SHA1哈希值:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <openssl/sha.h>
void calculateSHA1(const unsigned char* data, size_t length, unsigned char* hash) {
SHA_CTX context;
SHA1_Init(&context);
SHA1_Update(&context, data, length);
SHA1_Final(hash, &context);
}
int main() {
const char* data = 'Hello, World!';
unsigned char hash[SHA_DIGEST_LENGTH];
calculateSHA1((unsigned char*)data, strlen(data), hash);
printf('SHA1 Hash: ');
for (int i = 0; i < SHA_DIGEST_LENGTH; i++) {
printf('%02x', hash[i]);
}
printf('
');
return 0;
}
在上面的示例中,calculateSHA1函数接受一个指向数据的指针、数据的长度和一个用于存储哈希值的缓冲区。在函数内部,我们使用SHA_CTX结构来初始化SHA1上下文,然后通过SHA1_Update将数据添加到上下文中,最后使用SHA1_Final来获取最终的SHA1哈希值。
在main函数中,我们使用calculateSHA1函数来计算字符串'Hello, World!'的SHA1哈希值,并打印出来。
请注意,该示例需要链接OpenSSL库。在编译时,需要添加-lcrypto参数。
原文地址: https://www.cveoy.top/t/topic/bO4j 著作权归作者所有。请勿转载和采集!