我如何“ASCII装甲”;我的MemoryStream
本文关键字:我的 MemoryStream 装甲 ASCII | 更新日期: 2023-09-27 18:19:09
我如何ASCII装甲内存流?ASCII装甲是将二进制数据编码为可打印的ASCII字符串的过程。例如,这在加密中使用。
在c#中是否有任何标准的方法来做到这一点,也具有解码支持?像API?否则,怎么能做到呢?
您几乎应该始终使用Base64(或十六进制)来表示可打印文本中的任意二进制数据:
byte[] binary = ...;
string text = Convert.ToBase64String(binary);
...
string text = ...;
byte[] binary = Convert.FromBaseString(text);
您可以使用MemoryStream.ToArray()
将MemoryStream
中的所有数据转换为字节数组。以流方式执行此操作将需要更多的工作,但这是可行的-并且在使用ToBase64Transform
和FromBase64Transform
类的框架中支持它,您可以使用CryptoStream
将流链接起来。结果将是一个ascii编码的base64流。
您可以使用base64编码来获得二进制数据的合理紧凑的ASCII表示:
string data = Convert.ToBase64String(theMemoryStream.ToArray());
使用Convert.FromBase64String
方法解码字符串
检查我对我的密码做了什么,使用转换。FromBase64String和Convert。ToBase64String Methods
查看文档示例,可以更清楚地了解情况你. .你可以传递你的字节数组作为参数,然后检查什么你会…
ASCII armor
上指定的链接列出了最常用的二进制到文本编码形式,其中base64
可用。你可以使用。net库来完成。
//
public static string EncodeString(string s)
{
byte[] b = System.Text.Encoding.Default.GetBytes(s);
return Convert.ToBase64String(b, 0, b.Length);
}
//解码
public static string DecodeString(string s)
{
byte[] b = Convert.FromBase64String(s);
return System.Text.Encoding.Default.GetString(b);
}