c#将二进制数据读入字符串

c#将二进制数据读入字符串,c#,string,binary,byte,C#,String,Binary,Byte,我已经看过很多关于如何将字节数组转换成字符串的例子,但是当我开始使用加密时,这给我带来了很多问题。出于好奇,有没有人知道一种将二进制数据直接读取到字符串上的方法 VB6执行此操作的方法是: Dim S as string s = space$(lof(1)) Get #1,, s close #1 如果没有,我已经看到了将字符串转换为字节数组、返回到字符串(包括base64、UTF8)的不同方法,最后是逐字符转换为字节 我的目标很简单。我想将二进制数据检索到一个字符串上,加密这个字符串,最后将

我已经看过很多关于如何将字节数组转换成字符串的例子,但是当我开始使用加密时,这给我带来了很多问题。出于好奇,有没有人知道一种将二进制数据直接读取到字符串上的方法

VB6执行此操作的方法是:

Dim S as string
s = space$(lof(1))
Get #1,, s
close #1
如果没有,我已经看到了将字符串转换为字节数组、返回到字符串(包括base64、UTF8)的不同方法,最后是逐字符转换为字节

我的目标很简单。我想将二进制数据检索到一个字符串上,加密这个字符串,最后将所有字符串数据写回一个新的二进制文件


您认为哪种方法最快?

如果您只想加密二进制数据,那么应该避免使用字符串。如果您要加密属于字符串的文本信息,那么您应该关心编码(UTF-8和friends)——尽管读入数据、将其放入字符串、加密字符串然后写出数据似乎是一个奇怪的要求。

您声明要从
字节[]开始
字符串
字节[]
;首先,请注意,
编码
(如UTF-8)不是一个选项;这仅适用于将字符串转换为二进制再转换为字符串的情况。区别很重要:它实际上需要是文本数据才能工作,而任意的
字节[]
不能被视为文本数据。这也排除了“直接写入字符串”的可能性,原因类似(不限于:代理等)

将二进制编码为字符串的正确方法是使用base-64、base-16等;base-64是这里最有效的通用编码

但是,;大多数加密代码使用二进制代码,而不是文本。如果您有一个文本加密API,在大多数情况下,它要做的第一件事是使用UTF-8之类的编码将其转换为二进制


因此:检查您是否缺少直接二进制API选项。

我需要数据为字符串格式,以便可以将数据添加到原始数据的末尾。除非有什么方法可以在不首先转换为字符串的情况下执行此操作?如果需要附加到现有字节集合的末尾,请查看System.IO.MemoryStream。我最终创建了自己的函数:我只是逐个字节地进行转换,并从byte>char>string进行转换。二进制数据是如何加密的?