【问题标题】:LPBYTE data to CString in MFCLPBYTE 数据到 MFC 中的 CString
【发布时间】:2011-10-24 19:52:06
【问题描述】:

我正在使用 CryptProtectData 函数加密数据,我正在获取 LPBYTE 格式的加密数据,我想将该数据保存到一个文件中,然后读回进行解密。

为了在文件中写入字符串,我使用以下一种将 LPBYTE 数据转换为 CString:

CString strEncrUName = (wchar_t *)encryptedUN;

我什至试过这个How to convert from BYTE array to CString in MFC?,但还是不行。

使用的字符集是 unicode。

提前致谢

【问题讨论】:

    标签: c++ mfc cstring


    【解决方案1】:

    加密数据是原始字节的缓冲区,而不是字符。如果要将其转换为字符串,则必须以某种方式对其进行编码,例如将其转换为十六进制字符。

    例如。字节 0xd5 变为 2 个字符:“D5”

    循环遍历每个字节并将其转换为十六进制字符是留给读者的简单练习。

    当然,您必须在读取文件后将其转换回二进制文件。

    您确定要将其保存到文本文件中吗?您的另一个选择是将二进制加密数据保存到二进制文件中:无需转换为字符串。

    【讨论】:

      【解决方案2】:

      如果你的指针代表零终止字符串

      LPBYTE pByte;

      CString str(LPCSTR(pByte));

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-02
        • 2011-08-12
        • 2011-12-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-19
        • 1970-01-01
        相关资源
        最近更新 更多