繁体   English   中英

带有 K 个前导零的 SHA1 校验和

[英]SHA1 checksum with K leading zeroes

我试图找到为下面的等式生成随机字符串的超级有效方法:

checkSum = SHA1(fixed_string + random_string)

校验和必须有 k 前导零才能满足最终条件。 当前的实现是使用蛮力方法结合随机字符串生成器。 但是如果K大于7 ,这种方法效率低下且耗时。

static void
gen_random(char *s) {
    static const char alphanum[] =
        "0123456789"
        "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        "abcdefghijklmnopqrstuvwxyz";

    for (size_t i = 0; i < LENGTH - 1; ++i) {
        s[i] = alphanum[rand() % (sizeof(alphanum) - 1)];
    }
}

有没有人知道开发一种有效的算法来生成随机字符串来以有效的方式处理条件? 另一个问题是关于(fixed_string + random_string)的长度。 正确处理 SHA1 校验和的最佳长度是多少?

谢谢

如果我理解正确,您尝试在这里验证 SHA1 实现。 为此,我建议使用来自NIST 的测试向量

有面向字节和面向位实现的测试向量。

来自shabytetestvectors/SHA1ShortMsg.rsp文件的测试向量示例

Len = 152
Msg = 148de640f3c11591a6f8c5c48632c5fb79d3b7
MD = b47be2c64124fa9a124a887af9551a74354ca411

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM