#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>
int main()
{
unsigned char ibuf[] = "trysha";
unsigned char obuf[20];
SHA1(ibuf, strlen(ibuf), obuf);
int i;
for (i = 0; i < 20; i++) {
printf("%02x ", obuf[i]);
}
printf("\n");
return 0;
}
我得到了一些錯誤與此代碼..C代碼轉換爲C++ SHA1問題
sha.cpp: In function ‘int main()’:
sha.cpp:10:27: error: invalid conversion from ‘unsigned char*’ to ‘const char*’ [-fpermissive]
/usr/include/string.h:399:15: error: initializing argument 1 of ‘size_t strlen(const char*)’ [-fpermissive]
只需使用'static_cast'將它們轉換爲正確的類型即可。 –
trojanfoe
如果你已經知道你的字符串有多長,'strlen'只是愚蠢的。只需使用'sizeof ibuf'。 –