我被告知要使用Siphash键
24 64 6d 71 33 45 30 31 63 2f 6d 69 37 33 9d 19
我正在尝试使用SipHash24_Init从OpenBSD开始。
我有以下全球报告:
const SIPHASH_KEY COMP_SIPHASH_KEY = 0x24646d7133453031632f6d6937339d19;是这样使用的:
SIPHASH_CTX ctx;
SipHash24_Init(&ctx, &COMP_SIPHASH_KEY);我会发布更多,但它很复杂,我不认为这是相关的
但是,我在定义/声明上得到了以下编译器错误:
error: integer constant is too large for its type
error: invalid initializer发布于 2015-10-18 12:40:09
因此,鉴于我最近在C方面的实践有限,我认为你应该做以下几件事:
SIPHASH_CTX ctx;
SIPHASH_KEY key;
key.k0 = bswap_64(0x24646d7133453031);
key.k1 = bswap_64(0x632f6d6937339d19);
SipHash24_Init(&ctx, &key);因为SIPHASH_KEY似乎被定义为
typedef struct {
uint64_t k0;
uint64_t k1;
} SIPHASH_KEY;我在这里使用一个<byteswap.h>库来反转长值中的字节,因为k0和k1应该被编码为小的endian值。
https://stackoverflow.com/questions/33193972
复制相似问题