Cpp / Hash 所得字符串转成 Hex 字符串。
生活随笔
收集整理的這篇文章主要介紹了
Cpp / Hash 所得字符串转成 Hex 字符串。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
遇到的需求如下,將待明文 Hash 所得的結果轉成 Hex 字符串。最開始沒懂這條需求是什么意思,后來查閱資料之后終于弄到了,總結如下:
字符串中每個字節按照整型讀取,將該值轉成 16 進制數并轉成字符串,最終所有的單個 16 進制串按照順序拼接就得到了上述字符串的16進制字符串。
代碼:
int StringToHex(const std::shared_ptr<char> &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!)
?
總結
以上是生活随笔為你收集整理的Cpp / Hash 所得字符串转成 Hex 字符串。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cpp / 引用的本质
- 下一篇: Cpp 11 / 万能引用、引用折叠和完