[英]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*
。 我猜你可以使用union
的unsigned 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.