C ++如何使用boost来制作简单的sha256发生器?

时间:2011-07-21 17:47:55

标签: c++ math boost encryption sha256

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

4 个答案:

答案 0 :(得分:2)

就像其他人所说的那样,我认为在SHA256下进行散列并不足以让自己成为更大编码项目的子集。如果你看一下wikipedia page for SHA-2,你会发现一些非常激烈的数学。如果您想要实际的加密摘要(数学理论本身),可以找到它here。如果你像大多数程序员一样,他们的重点不在于安全性,那么你可能只想使用别人经过测试和尝试过的实现。你可以找到很多here。如果这有帮助,请告诉我。对不起,我无法用直接的代码或类似的东西回答你的问题。

答案 1 :(得分:2)

您可以直接在RFC 6234的第8部分找到C源代码。请务必同时查看errata

答案 2 :(得分:1)

你想要这个吗?

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

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

答案 3 :(得分:0)

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