sha256算法 c语言
时间: 2023-02-05 13:01:50 浏览: 40
SHA-256(Secure Hash Algorithm 256位)是一种散列算法,它能将任意长度的输入(又称为消息)变换成固定长度的输出,即散列值(又称为消息摘要或散列码)。这个输出的长度固定为256位(32个字节)。SHA-256是SHA-2系列的一员,也是经过最广泛审查的散列算法之一。
下面是使用C语言实现SHA-256散列算法的一个示例:
```
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>
int main(int argc, char *argv[])
{
unsigned char digest[SHA256_DIGEST_LENGTH];
char string[] = "hello, world";
SHA256((unsigned char*)&string, strlen(string), (unsigned char*)&digest);
char mdString[SHA256_DIGEST_LENGTH*2+1];
for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);
printf("SHA256 digest: %s\n", mdString);
return 0;
}
```
在这个示例中,我们使用了OpenSSL库中的SHA256函数来计算散列值。首先,我们将要散列的消息存储在字符串中,然后调用SHA256函数来计算散列值。最后,我们将散列值转换为十六进制字符串并打印出来。
希望这对你有帮助!
阅读全文