c++如何用boost制作简单的sha256生成器

C++ how to make simple sha256 generator with boost?

本文关键字:sha256 简单 何用 boost c++      更新时间:2023-10-16

我需要一个简单的字符串sha256生成器类。我不想为像openSSL或cripto++这样的大型库构建-我想要的只是将字符串转换为sha256。如何创建这样的类,或者从哪里得到它?

就像其他人说的那样,我的印象是SHA256下的哈希并不是简单地实现自己作为一个更大的编码项目的子集。如果您查看一下SHA-2的wikipedia页面,您将注意到一些非常复杂的数学问题。如果您想要实际的加密摘要(数学理论本身),可以在这里找到。如果您像大多数不重视安全性的程序员一样,那么您可能希望简单地使用其他人经过测试和尝试的实现。你可以在这里找到一些。如果这有帮助,请告诉我。对不起,我不能用直接的代码或类似的东西来回答你的问题。

您可以直接在RFC 6234的第8节中找到C源代码。确保你也检查了勘误表

你想要这个?

static void
sha2_round(const unsigned char *data, sph_u32 r[8])
{
    int i;
    sph_u32 a, b, c, d, e, f, g, h;
    sph_u32 w[64];
    for (i = 0; i < 16; i ++)
        w[i] = sph_dec32be_aligned(data + (4 * i));
    for (i = 16; i < 64; i ++) {
        w[i] = SPH_T32(SSG2_1(w[i - 2]) + w[i - 7]
            + SSG2_0(w[i - 15]) + w[i - 16]);

去http://www.saphir2.com/sphlib/然后下载。它遵循GPL。查看sha2.c

注意,它没有很多文档。它是为那些已经知道自己在做什么的人设置的。

GNU coretils有一个非常简单的源代码。只要下载coretils,他们甚至有一个测试套件,你可以构建,源代码充满了注释和文档。