一个仅包含头文件的、使用 C++ 语言的 SHA256 哈希生成器
版权所有 © 2017 okdshin
PicoSHA2 是一个用于 C++ 的微型 SHA256 哈希生成器,具有以下特性:
// any STL sequantial container (vector, list, dequeue...)
std::string src_str = "The quick brown fox jumps over the lazy dog";
std::vector hash(picosha2::k_digest_size);
picosha2::hash256(src_str.begin(), src_str.end(), hash.begin(), hash.end());
std::string hex_str = picosha2::bytes_to_hex_string(hash.begin(), hash.end());picosha2::hash256_one_by_one hasher;
...
hasher.process(block.begin(), block.end());
...
hasher.finish();
std::vector hash(picosha2::k_digest_size);
hasher.get_hash_bytes(hash.begin(), hash.end());
std::string hex_str = picosha2::get_hash_hex_string(hasher);文件 example/interactive_hasher.cpp 提供了更详细的信息。
std::ifstream f("file.txt", std::ios::binary);
std::vector s(picosha2::k_digest_size);
picosha2::hash256(f, s.begin(), s.end());hash256 可能比读取整个文件使用更少的内存。
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 src_vect(...);
std::string hash_hex_str;
picosha2::hash256_hex_string(src_vect, hash_hex_str);std::vector src_vect(...);
std::string hash_hex_str = picosha2::hash256_hex_string(src_vect);unsigned char src_c_array[picosha2::k_digest_size] = {...};
std::string hash_hex_str;
picosha2::hash256_hex_string(src_c_array, src_c_array+picosha2::k_digest_size, hash_hex_str);unsigned char src_c_array[picosha2::k_digest_size] = {...};
std::string hash_hex_str = picosha2::hash256_hex_string(src_c_array, src_c_array+picosha2::k_digest_size);暂无开放 Issues,或尚未同步最近议题。