Tout en apprenant quelques notions de base avec OpenSSL je suis tombé sur le code à create an SHA256 hash:setw et setfill comme il est utilisé dans une fonction de hachage SHA256
using namespace std;
#include <openssl/sha.h>
string sha256(const string str)
{
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, str.c_str(), str.size());
SHA256_Final(hash, &sha256);
stringstream ss;
for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
{
ss << hex << setw(2) << setfill('0') << (int)hash[i];
}
return ss.str();
}
Quelqu'un peut-il s'il vous plaît expliquer cess << hex << setw(2) << setfill('0') << (int)hash[i];
fait dans cet exemple spécifique comme simplement possible, tout en l'expliquant efficacement?
Comme je ne peux pas sembler logique de ces réponses, ils ne nous aident pas à comprendre mon extrait spécifique:
Savez-vous ce que chacun des [manipulateurs] (http://en.cppreference.com/w/cpp/io/manip) font d'eux-mêmes? Avez-vous essayé d'expérimenter avec eux lors de l'impression de 'std :: cout'? –
Ensuite, vous devriez probablement [trouver un bon livre pour débutants] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) car il devrait expliquer ces * manipulateurs * et ce qu'ils faire. Vous pouvez aussi faire la sortie 'cout' au lieu de' ss' et voir ce que vous obtenez. Et le plus important, expérimenter! :) –
@Someprogrammerdude Je ne sais pas, je sais presque rien sur std :: quoi que ce soit car je suis en train de passer en C++ de C, et j'ai du mal à tout apprendre à la fois et donner un sens aux docs – Semaphore