3

G-WANでsha1関数を機能させるのに小さな問題があります。

基本的に私はハッシュしたい文字列を持っています、私は一般的にCに慣れていないので、どんなポインタも素晴らしいでしょう。

これはsha1ハッシュを試みている文字列です。いくつかのアプローチを試しましたが、何が間違っているのかわかりません。

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

私はほとんどG-wanと連携するWebSocketを持っていますが、最後にこのsha1関数を連携させることです。

G-wanssha1関数に関するドキュメントは以下のとおりです

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

そこへのリンクapihttp: //gwan.com/api

誰かが私にここに骨を投げることができれば、それはCとの私の最後の時間を少し寛容にするでしょう。

4

1 に答える 1

2

これは、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またはHEXに変換する必要があります。'%B'は、G-WANでのB64変換です。'%20B'は、最初の20バイトを変換するように指示します。

結果:

SHA1の結果:Kfh9QIsMVZcl6xEPYxPHzW8SZ8w =

于 2012-11-06T16:25:22.833 に答える