J'essaie de hacher une chaîne puis d'utiliser ce hachage comme nom de fichier.Puis-je utiliser un hachage crypté comme nom de fichier ou dois-je le convertir en premier?
Mon problème: est que tous les C++ hashers/crypters Je suis venu à travers un hachage std :: string ou char * & retourne la chaîne hachée comme unsigned char *? Comment puis-je convertir ce char * non signé en une chaîne char * ou une chaîne std :: afin que je puisse l'écrire dans un fichier ou un nom de fichier? Ou n'ai-je pas besoin de le convertir en une chaîne normale pour l'utiliser?
tstring hashString(tstring str)
{
// Post:
unsigned char hashStr[SHA256_DIGEST_SIZE];
std::string messageStr = str;
SHA256::getInstance()->digest(messageStr, hashStr);
//TCHAR *hashStrSigned = reinterpret_cast <TCHAR*>(hashStr);
// can I just use this hashStr to create a file? Or do I have to convert it to char* to use?
Handle newF = CreateFile((LPTSTR)hashStr, GENERIC_ALL, 0, NULL, CREATE_ALWAYS,
0, NULL);
return tstring(hashStrSigned);
}
Le hachage bibliothèque a probablement une fonction "hexdigest" que vous pourriez appeler au lieu de "digest", qui vous donnera les caractères hexadécimaux. Ensuite, tout ce qui est vraiment nécessaire est la dernière ligne à convertir en 'std :: string', bien que vous pourriez aussi avoir besoin d'avoir une conversation avec votre compilateur sur la différence entre' unsigned char * 'et' char * '. Si c'est le cas, le mieux est de faire 'std :: string (hexHash, hexHash + SHA256_HEXDIGEST_SIZE])' –