2012-11-06 100 views
2

我有一个小问题让sha1函数在G-WAN中工作。G-wan C Sha1哈希

基本上我有我想散列串,我一般是新的C所以任何指针将是巨大的 。

这是字符串即时试图SHA1哈希,我心中已经尝试了几种方法,但我不知道我做错了。

u8 *input = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; 

我几乎有websockets与G-wan合作,最后一件事是让这个sha1函数与我合作。在G-广域网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

如果有人可以把我骨头这里它将使我的最后几个小时用C稍微有点宽容。

+1

你能提供源的涉及调用SHA1哈希函数中的行?还有您看到的错误消息或日志以及软件行为的描述? –

+0

我不会提供源,更不用说找到TBH了。我在日志中唯一的错误是“web.c中的bug”,并且对函数sha1的参数太少。然后导致404服务器发生页面崩溃。谢谢你的回复。 :)刚刚得到它给我另一个错误,这是最后一个参数是不兼容的指针。 – tomek

+0

我对你希望如何修改你无法提供的源码感到困惑。日志表明所提供的参数有问题。我无法分辨这是编译错误还是运行时错误。如果没有关于您的环境和软件行为的额外信息,我无法帮助您。具有实际的错误消息和日志也会很方便。 –

回答

1

下面是如何使用sha1函数的示例。所以你需要将其转换为B64或十六进制,使其可读

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); 

结果是二元的。 '%B'是G-WAN中的B64转换。 '%20B'告诉它转换前20个字节。

结果:

SHA1结果:Kfh9QIsMVZcl6xEPYxPHzW8SZ8w =

+0

真是太棒了,谢谢! :) – tomek