Copyright © 2014 okdshin
PicoSHA2 is a tiny SHA256 hash generator for C++ with following properties:
- header-file only
- no external dependencies (only uses standard C++ libraries)
- STL-friendly
- licensed under MIT License
picosha2::hash256_one_by_one hasher; ... hasher.process(block.begin(), block.end()); ... hasher.finish(); std::string hex_str = picosha2::get_hash_hex_string(hasher);
example/interactive_hasher.cpp has more detail information.
std::string src_str = "The quick brown fox jumps over the lazy dog"; std::string hash_hex_str; picosha2::hash256_hex_string(src_str, hash_hex_str); std::cout << hash_hex_str << std::endl; //this output is "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592"
std::string src_str = "The quick brown fox jumps over the lazy dog"; std::string hash_hex_str = picosha2::hash256_hex_string(src_str); std::cout << hash_hex_str << std::endl; //this output is "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592"
std::string src_str = "The quick brown fox jumps over the lazy dog.";//add '.' std::string hash_hex_str = picosha2::hash256_hex_string(src_str.begin(), src_str.end()); std::cout << hash_hex_str << std::endl; //this output is "ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c"
std::vector<unsigned char> src_vect(...); std::string hash_hex_str; picosha2::hash256_hex_string(src_vect, hash_hex_str);
std::vector<unsigned char> src_vect(...); std::string hash_hex_str = picosha2::hash256_hex_string(src_vect);
unsigned char src_c_array[32] = {...}; std::string hash_hex_str; picosha2::hash256_hex_string(src_c_array, src_c_array+32, hash_hex_str);
unsigned char src_c_array[32] = {...}; std::string hash_hex_str = picosha2::hash256_hex_string(src_c_array, src_c_array+32);
//any STL sequantial random accessible containers (array, vector, dequeue...) std::string src_str = "The quick brown fox jumps over the lazy dog"; //any STL sequantial containers (array, list, dequeue...) std::vector<unsigned char> hash(32); picosha2::hash256(src_str, hash);
//any STL sequantial random accessible containers (array, vector, dequeue...) std::string src_str = "The quick brown fox jumps over the lazy dog"; //any STL sequantial containers (array, list, dequeue...) std::vector<unsigned char> hash(32); picosha2::hash256(src_str.begin(), src_str.end(), hash);
std::string src_str = "The quick brown fox jumps over the lazy dog"; unsigned char hash_byte_c_array[32]; picosha2::hash256(src_str, hash_byte_c_array, hash_byte_c_array+32);
std::string src_str = "The quick brown fox jumps over the lazy dog"; std::vector<unsigned char> hash(32); picosha2::hash256(src_str.begin(), src_str.end(), hash.begin(), hash.end());