Cpp / Hash 所得字符串转成 Hex 字符串。

遇到的需求如下,将待明文 Hash 所得的结果转成 Hex 字符串。最开始没懂这条需求是什么意思,后来查阅资料之后终于弄到了,总结如下:

字符串中每个字节按照整型读取,将该值转成 16 进制数并转成字符串,最终所有的单个 16 进制串按照顺序拼接就得到了上述字符串的16进制字符串。

代码:

    int StringToHex(const std::shared_ptr &psrc, const size_t &srclen,std::string &strdist){if (nullptr == psrc || 0 == srclen){return -1;}strdist.clear();for (size_t i = 0; i < srclen; ++i){std::stringstream stream;//避免丢失高位 0 。stream << std::hex << ((psrc.get()[i] & 0xf0) >> 4) << (psrc.get()[i] & 0x0f);strdist += stream.str();}return 0;}

为什么大多数算出明文的 Hash 值之后需要转成 Hex 字符串?

主要为了方便查看,因为最开始的 hash 值里面比较杂乱,包括可见字符、不可见字符、负值,有的字符干脆每一位都是 0 ,所以不容易人为的查看和比较。

故将其转成 Hex 字符串,其实转成 Base 64 串也可以。

 

(SAW:Game Over!)

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部