我如何使用“ASCII 盔甲”我的记忆流?

发布于 2024-12-24 16:45:59 字数 196 浏览 0 评论 0 原文

如何ASCII 装甲内存流? ASCII 装甲是将二进制数据编码为可打印 ASCII 字符串的过程。例如,这用于加密。

在 C# 中是否有任何标准方法可以做到这一点,并且还支持解码?就像 API 一样?不然的话,怎么办呢?

How do I ASCII armor a memory stream? ASCII armoring is the process of encoding a binary data to a printable ASCII string. This is used for example in encryption.

Is there any standard way to do this, also with decoding support, in C#? Like an API? Otherwise, how can it be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你怎么敢 2024-12-31 16:45:59

您几乎应该始终使用 Base64 (或十六进制)来表示可打印文本中的任意二进制数据:

byte[] binary = ...;
string text = Convert.ToBase64String(binary);

...

string text = ...;
byte[] binary = Convert.FromBaseString(text);

您可以使用 MemoryStream.ToArray() 将所有数据转换为一个MemoryStream 转换为字节数组。以流式传输方式执行此操作需要稍微多一些的工作,但这是可行的 - 并且使用 ToBase64TransformFromBase64Transform 类,您可以使用它来链接具有 CryptoStream 的流。结果将是 ASCII 编码的 base64 流。

You should almost always use Base64 (or hex) to represent arbitrary binary data in printable text:

byte[] binary = ...;
string text = Convert.ToBase64String(binary);

...

string text = ...;
byte[] binary = Convert.FromBaseString(text);

You can use MemoryStream.ToArray() to convert all the data in a MemoryStream into a byte array. Doing this in a streaming fashion would take slightly more work, but would be feasible - and there's support for it in the framework using the ToBase64Transform and FromBase64Transform classes, which you can use to chain a stream with a CryptoStream. The result will be an ASCII-encoded base64 stream.

半夏半凉 2024-12-31 16:45:59

您可以使用 base64 编码来获取二进制数据的相当紧凑的 ASCII 表示形式:

string data = Convert.ToBase64String(theMemoryStream.ToArray());

使用 Convert.FromBase64String 方法对字符串进行解码。

You can use base64 encoding to get a reasonably compact ASCII representation of binary data:

string data = Convert.ToBase64String(theMemoryStream.ToArray());

Use the Convert.FromBase64String method to decode the string.

木落 2024-12-31 16:45:59

检查我对密码做了什么,使用 Convert.FromBase64String< /a> 和 Convert.ToBase64String 方法

查看文档示例,可能会更清楚地了解图片
你..你可以将字节数组作为参数传递给你,然后检查什么
你会得到...... 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);
}

Check this what have i done for my password, using Convert.FromBase64String and Convert.ToBase64String Methods

Check the documentation example that may clear the picture more to
you.. you can pass you byte array as parameter and then check what
will you get.. The link specified on ASCII armor there are list of most used forms of binary-to-text encodings, in which base64 available. you can work on this using .net libraries.

//encode

public static string EncodeString(string s)
        {
            byte[] b = System.Text.Encoding.Default.GetBytes(s);
            return Convert.ToBase64String(b, 0, b.Length);
        }

//decode

public static string DecodeString(string s)
{
    byte[] b = Convert.FromBase64String(s);
    return System.Text.Encoding.Default.GetString(b);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文