gpt4 book ai didi

c++ - 使用 XOR 加密字符串并使用 BSAFE(类似 OpenSSL 的库)对它们进行哈希处理

转载 作者:行者123 更新时间:2023-11-28 03:48:32 27 4
gpt4 key购买 nike

我必须计算 XOR 加密字符串的 SHA-2 哈希值。我正在使用 RSA BSafe 库(与 OpenSSL 非常相似)。我的 XOR 函数看起来像这样:

for (int i = 0; i < strlen(combined); i++)
{
encrypted[i] = (combined[i] ^ authkey[i%strlen(authkey)]);

}

这会在 char 数组中产生一些 '\0' 字符 (NullTerminations)。在此之后,我将这个加密的字符串传递给我的 hmac() 函数。现在的问题是,当 BSafe HMAC 计算字符数组的哈希值时,它不期望中间有 '\0' 字符。我该如何避免这个问题?即使 OpenSSL 中给定的 w.r.t 函数的答案也会有所帮助,因为两者非常相似。

提前致谢!

最佳答案

使用 OpenSSL,您可以显式传递长度。包含 NULL 的数据无关紧要。

unsigned char *HMAC(const EVP_MD *evp_md, const void *key,
int key_len, const unsigned char *d, int n,
unsigned char *md, unsigned int *md_len);

n 是您的数据的长度,由 d 指向。显然,您必须自己跟踪 *d 的长度,因为 strlen 将不起作用。如果 BSafe 的工作方式不同,我会感到震惊。

当然,正如我的评论所说,两次使用一次一密是非常不安全的。您几乎肯定不应该重新实现加密原语; BSafe 不提供流密码吗?

关于c++ - 使用 XOR 加密字符串并使用 BSAFE(类似 OpenSSL 的库)对它们进行哈希处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6524062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com