2012-11-06 102 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