首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将SHA1转换为无符号长ints的array[5]?

如何将SHA1转换为无符号长ints的array[5]?
EN

Stack Overflow用户
提问于 2015-02-05 09:59:02
回答 1查看 331关注 0票数 0

为了我使用的库/子系统的目的,我必须将SHA1 (使用opensll计算)转换为5个无符号长ints元素数组(32位变量),或者自己创建前面提到的SHA1-5长数组。

原因:

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

我认为第一个解决方案会更好,所以我的问题是:我应该如何完成这项任务?逐位读取字节/位,然后从它创建无符号的长it,并将其放入数组中,还是有不同的解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-05 10:11:30

SHA1产生一个20字节的散列值.在openssl中,它返回一个unsigned char*。我猜您可以使用union of unsigned char[20]uint32_t[5],并使用字符进行简单的字节访问:

代码语言:javascript
复制
union mysha1{
    uint32_t shaint[5];
    unsigned char shachar[20];
};

再加上一堆操作符(例如索引),你就很适合了。

但是,如果您想保持简单简练,那么可以在memcpy输出和uint32_t[5]之间做一个uint32_t[5]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28340991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档