Windows runtime CryptographicBuffer.ConvertStringToBinary输出字符串而不是“二进制”

Windows runtime CryptographicBuffer.ConvertStringToBinary输出字符串而不是“二进制”,windows-runtime,windows-store-apps,Windows Runtime,Windows Store Apps,我使用这个简单的方法来保存字符串: public static async void SaveStringAsync(string stringData, string fileName) { StorageFolder localFolder = ApplicationData.Current.LocalFolder; StorageFile file = await localFolder.CreateFileAsync(fileName, CreationCollision

我使用这个简单的方法来保存字符串:

public static async void SaveStringAsync(string stringData, string fileName)
{
    StorageFolder localFolder = ApplicationData.Current.LocalFolder;
    StorageFile file = await localFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

    IBuffer buffer = CryptographicBuffer.ConvertStringToBinary(stringData, BinaryStringEncoding.Utf8);

    await FileIO.WriteBufferAsync(file, buffer);
}
当我在记事本中打开保存的文件时,我看到字符串非常漂亮。我的印象是,保存为二进制意味着如果我在记事本中打开文件,我将看到的只是垃圾和随机字符


我想看到一些非常轻微的混淆,我正在保存什么,即使它不是一个安全要求,没有密码,任何类型的敏感数据正在保存。难道没有办法写出一个会显示废话而不是纯字符串的文件吗?

可能有一些内置工具,不过你可以自己轻松地完成。是的,不是吗;这些都是文本编码。那么,在这里转换为二进制究竟意味着什么呢?该函数将字符串转换为该字符串的二进制表示形式,即,一组与实现无关的字节,适合传递给加密函数、保存在文件中或通过网络传输。当然,在实践中,字符串已经存储在二进制表示中,但这是一个由string类抽象出来的实现细节。转换函数删除了抽象,并将实现选择的未指定编码转换为程序员选择的特定编码。因此,如果我理解正确,我从其他应用程序打开二进制文件时看到的垃圾只是一个不同的编码集?如果数据表示文本,但记事本没有正确显示文本,则可能是非标准编码,或者可能是压缩、模糊或以其他方式修改的。例如,Microsoft Office文档是压缩的。您应该注意到,二进制有时确实非正式地用于表示非文本,但这取决于上下文;这有点像“动物”这个词有时被非正式地用来表示非人类,尽管人类实际上是动物。