簡體   English   中英

如何將SHA1轉換為無符號長整數的array [5]?

[英]How to convert SHA1 to array[5] of unsigned long ints?

為了我使用的庫/子系統的目的,我必須將SHA1(使用openssl計算)轉換為5個元素的無符號長整數(32位變量)數組,或者由我自己創建上述SHA1-5-long-array。

原因:

SHA1 (160 bits) = 5 x unsigned long int (32 bits)

我認為第一個解決方案會更好,所以這是我的問題:我應該如何處理此任務? 逐字節讀取字節/位,然后從中創建無符號長整數並將其放入數組中,還是有其他解決方案?

SHA1產生20字節的哈希值。 在openssl中,它返回一個unsigned char* 我猜你可以使用unionunsigned char[20]uint32_t[5]和使用,便於字節訪問字符:

union mysha1{
    uint32_t shaint[5];
    unsigned char shachar[20];
};

再加上一堆運算符(例如索引),您就可以開始了。

如果您想保持它的簡潔和簡單,則可以在SHA1輸出和uint32_t[5]之間進行一次memcpy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM