[C++11]_[初级]_[十六进制字符串转换为字节数组]

Posted infoworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C++11]_[初级]_[十六进制字符串转换为字节数组]相关的知识,希望对你有一定的参考价值。

场景

  1. 在开发使用加密算法md5,sha256等的功能时, 会生成基于十六进制的字符串密钥。 这时候在使用这些密钥进行解密或加密的时候,第三方库都需要传入一个字节数组usigned char*格式的数组,它每个字节的高4位和低4位都分别存储了1个字符值。那么用C++如何实现?

说明

  1. 举例子比如字符串"a3fd",它有4个字符,那么它实际上只需要2个字节就可以存储。每两个字符存储在一个字节里,分别对应着高低4位。所以"a3fd"就是在内存里的结果是0xa3,0xfd

  2. 如果是使用python的话,bytes类型的对象默认就有fromhex方法,很方便,可惜C++标准库没有这么方便的方法。

    bytes.fromhex(strData)
    
  3. 我们知道标准字符串string可以存储任意的字节数据0~0xff, 它的size()并不是遇到\\0就会结束。所以可以使用s

以上是关于[C++11]_[初级]_[十六进制字符串转换为字节数组]的主要内容,如果未能解决你的问题,请参考以下文章

力扣_初级算法_其他_2~6题_和_数组_10~11题

[C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]

[C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]

[C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]

[C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]

[C/C++11语法]_[初级]_[lamba 表达式介绍]