[Solved] C++ Sha1 issue with using char *


char *string1 = strdup(data.c_str());
// do stuff with string1
free(string1);

SHA1((unsigned char*)&string1, strlen(string1), (unsigned char*)&digest);

There’s your error.

  • You created string1
  • You used it
  • You freed it
  • You used it again

Don’t free what you still need to use.


In addition to that:

SHA1((unsigned char*)&string1, strlen(string1), (unsigned char*)&digest);

What you’re doing here is passing the address of char* string1 converted to an unsigned char*. What you want to do is pass string1 instead of &string1. The same applies to digest.

1

solved C++ Sha1 issue with using char *