gpt4 book ai didi

c# - 如何缩小字符串并在以后找到原始字符串

转载 作者:行者123 更新时间:2023-11-30 17:53:38 26 4
gpt4 key购买 nike

我正在开发这个仍处于测试阶段的应用程序,因此我设置了一个日志记录系统。日志太长,无法在 mailto url 中使用,因此我考虑缩小文本然后解密。假设我有一个 50 行长的日志,这应该可以帮助我制作类似这样的东西 zef16z1e6f8 然后有一个过程可以使用它来找出日志的所有 50 行。我想指出,我不需要任何花哨的 TripleDES 加密或其他东西。

最佳答案

首先,我建议重新审视一下为什么不能只邮寄整个日志内容?除非你有大日志(> 5MB),否则我建议只邮寄日志。如果您仍想采用一些收缩策略,我会考虑两种策略。

如果您想要一个简单的引用字符串,可用于在稍后阶段查找您的日志数据,您可以将某种标识符与数据相关联(例如,Eugene 建议的 GUID)。这样做的好处是无论日志大小如何,长度都是恒定的。

或者,您可以只压缩日志,这会稍微缩小数据(如 Dan 所述,最多可缩小约 90%)。然而,这有一个可变长度的缺点,对于非常大的日志,可能仍会超过您的大小限制。如果你走这条路,你可以做这样的事情(未经测试):

private string GetCompressedString()
{
byte[] byteArray = Encoding.UTF8.GetBytes("Some long log string");
using (var ms = new MemoryStream())
{
using (var gz = new GZipStream(ms, CompressionMode.Compress, true))
{
ms.Write(byteArray, 0, byteArray.Length);
}

ms.Position = 0;

var compressedBytes = new byte[ms.Length];
ms.Read(compressedBytes, 0, compressedBytes.Length);

return Convert.ToBase64String(compressedBytes);
}
}

关于c# - 如何缩小字符串并在以后找到原始字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17099479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com