C ++, как сделать простой генератор sha256 с boost? - PullRequest
3 голосов
/ 21 июля 2011

Мне нужна простая строка для класса генератора sha256. Я не хочу создавать большие библиотеки для этого, такие как openSSL или Cripto ++ - все, что я хочу, это превращать строки в sha256. Как создать такой класс или где его взять?

Ответы [ 4 ]

2 голосов
/ 22 июля 2011

Исходный код C находится непосредственно в разделе 8 RFC 6234 . Обязательно проверьте также опечатки .

2 голосов
/ 21 июля 2011

Как уже говорили другие, у меня сложилось впечатление, что хеширование под SHA256 не достаточно тривиально, чтобы просто реализовать себя как подмножество более крупного проекта кодирования. Если вы посмотрите на страницу википедии для SHA-2 , вы заметите довольно интенсивную математику. Если вам нужен реальный реферат шифрования (сама математическая теория), его можно найти здесь . Если вы похожи на большинство программистов, чей упор делается не на безопасность, то вы, вероятно, захотите просто использовать чужую проверенную и опробованную реализацию. Вы можете найти несколько хороших здесь . Дайте мне знать, если это помогло. Извините, я не смог ответить на ваш вопрос с помощью прямого кода или чего-то подобного.

1 голос
/ 21 июля 2011

Вы хотите это?

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

, будьте осторожны, он не имеет много документации.Он предназначен для людей, которые уже знают, что они делают.

0 голосов
/ 21 июля 2011

GNU coreutils имеет очень простой исходный код.просто загрузите coreutils, у них даже есть набор тестов, который вы можете собрать, а исходный код полон комментариев и документов.

...