我需要一个简单的字符串到 sha256 生成器类。我不想为之类的 openSSL 或 Cripto++ 构建大型库——我只想将字符串转换为 sha256。如何创建这样的课程或从哪里获得它?
问问题
11139 次
4 回答
2
就像其他人所说的那样,我的印象是 SHA256 下的散列并不简单,无法简单地将自己实现为更大编码项目的子集。如果您查看SHA-2 的维基百科页面,您会注意到一些非常密集的数学运算。如果您想要实际的加密摘要(数学理论本身),可以在此处找到。如果您像大多数不强调安全性的程序员一样,那么您可能只想简单地使用其他人经过测试和尝试的实现。你可以在这里找到好几个。让我知道这是否有帮助。抱歉,我无法用直接代码或类似的东西回答你的问题。
于 2011-07-21T18:55:20.040 回答
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
请注意,它没有很多文档。它是为已经知道自己在做什么的人设置的。
于 2011-07-21T18:56:13.970 回答
0
GNU coreutils 有一个非常简单的源代码。只需下载 coreutils,他们甚至有一个您可以构建的测试套件,并且源代码充满了评论和文档。
于 2011-07-21T19:17:30.107 回答