相关疑难解决方法(0)

使用char*的C++ Sha1问题

#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++

-3
推荐指数
1
解决办法
377
查看次数

标签 统计

c++ ×1