百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
P

PicoSHA2

> 编程语言
开源

一个仅包含头文件的、使用 C++ 语言的 SHA256 哈希生成器

753 stars0 点赞1 次浏览
访问官网GitHub

工具介绍

一个仅包含头文件的、使用 C++ 语言的 SHA256 哈希生成器

PicoSHA2 - 一个 C++ SHA256 哈希生成器

版权所有 © 2017 okdshin

简介

PicoSHA2 是一个用于 C++ 的微型 SHA256 哈希生成器,具有以下特性:

  • 仅包含头文件
  • 没有外部依赖项(仅使用标准 C++ 库)
  • 友好于 STL
  • 根据 MIT 许可证发行

生成 SHA256 哈希和哈希十六进制字符串

cpp
// 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());

从字节流生成 SHA256 哈希和哈希十六进制字符串

cpp
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 提供了更详细的信息。

从二进制文件生成 SHA256 哈希

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 生成 SHA256 哈希十六进制字符串

cpp
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);
cpp
std::vector src_vect(...);
std::string hash_hex_str = picosha2::hash256_hex_string(src_vect);
cpp
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);
cpp
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);

从 STL 序列生成 SHA256 哈希字节序列

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++cppcpp-libraryheader-onlymit-license

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言