我有一个小问题,使Sha1功能在G-Wan中工作。
基本上,我有我想哈希的字符串,我通常是C的新手太好了。
这是我试图hash的字符串,我尝试了几种方法,但我不确定我在做什么错。
u8 *input = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
我几乎让Websocket与G-Wan合作,最后一件事是使SHA1功能与我合作。
G-Wans Sha1功能的文档低于
// u8 dst[20]; // the resulting 160-bit hash
// sha1_t ctx;
// sha1_init(&ctx);
// int i = 10;
// while(i--)
// sha1_add(&ctx, data[i].ptr, data[i].len);
// sha1_end(&ctx, dst);
typedef struct { u8 x[220]; } sha1_t;
void sha1_init(sha1_t *ctx);
void sha1_add (sha1_t *ctx, u8 *src, int srclen);
void sha1_end (sha1_t *ctx, u8 *dst);
// a wrapper on all the above SHA-160 calls
void sha1(u8 *input, int ilen, u8 *dst);
链接到那里API http://gwan.com/api
如果有人可以在这里扔我的骨头,这将使我有点宽容的最后几个小时。
这是有关如何使用SHA1函数的示例。
u8 input[] = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
u8 result[20];
sha1(input, sizeof(input) - 1, result);
xbuf_xcat(get_reply(argv), "SHA1 Result: %20B", result);
结果是二进制的,因此您需要将其转换为B64或十六进制才能使其可读。"%b"是G-Wan中的B64转换。"%20b"告诉它转换前20个字节。
结果:
sha1结果:kfh9qismvzcl6xepyxphzw8sz8w =