#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
#include <sstream>
using namespace std;
int main()
{
std::stringstream ss;
std::string data;
data = "hello worl";
unsigned char digest[SHA_DIGEST_LENGTH];
char *string1 = strdup(data.c_str());
// do stuff with string1
free(string1);
SHA1((unsigned char*)&string1, strlen(string1), (unsigned char*)&digest);
char mdString[SHA_DIGEST_LENGTH*2+1];
for(int i = 0; i < SHA_DIGEST_LENGTH; i++)
sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);
ss.str("");
ss << mdString;
cout << ss.str() << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的输出总是一样的..
./sha
da39a3ee5e6b4b0d3255bfef95601890afd80709
Run Code Online (Sandbox Code Playgroud)
即使我将数据内容更改为"hello panda"或"hello ki"也给我相同的输出.
更新:我带走了免费
user1@ubuntu:~/yes/coding$ …Run Code Online (Sandbox Code Playgroud) c++ ×1