我正在使用CryptProtectData函数加密数据,我正在以LPBYTE格式获取加密数据,我想将该数据保存到文件中,然后回读以进行解密。
为了在文件中写入字符串,我使用以下一个将LPBYTE数据转换为CString:
CString strEncrUName =(wchar_t *)encryptedUN;
我甚至试过这个How to convert from BYTE array to CString in MFC?,但它仍无效。
使用的字符集是unicode。
提前致谢
答案 0 :(得分:1)
加密数据是原始字节的缓冲区,而不是字符。如果要将其转换为字符串,则必须以某种方式对其进行编码,例如将其转换为十六进制字符。
例如。字节0xd5变为2个字符:“D5”
循环遍历每个字节并将其转换为十六进制字符是一个易于操作的读者。
当然,在阅读文件后,您必须将其转换回二进制文件。
您确定要将其保存到文本文件中吗?您的另一个选择是将二进制加密数据保存到二进制文件:无需转换为/来自字符串。
答案 1 :(得分:-1)
如果指针表示零终止字符串
LPBYTE pByte;
CString str(LPCSTR(pByte));