gpt4 book ai didi

c# - 将数字流分成更小的 block 进行处理

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:56 24 4
gpt4 key购买 nike

请理解我要提出的问题是学术性的,因此在现实世界的应用中可能没有意义。

我有一个可以正常运行的示例程序。该程序将数据写入一个文件,其中每一行都是一个字节。这些行是这些字节的数字表示。此数字表示是字节的 128 位 RSA 加密的结果。

例如第一行:

96044789616462297850953361101470572607 translates (decrypts) into 60 and byte 60 is of course < which is correct as this is an xml doc.

现在示例程序有一个明显的优势,因为加密的源文件在所有正确的位置都有换行符。

我的 self 追求是尝试而不是从数字流中读取。因此示例程序读取 4 行并处理每一行:

96044789616462297850953361101470572607 == 60 == <
40994093243674456311017847789777907446 == 63 == ?
61444338813524296592539084778436332638 == 120 == x
169017452170450092162160631302176410189 == 109 == m
//Note how the fourth line is 39 not 38 digits

我会:

960447896164622978509533611014705726074099409324367445631101784778977790744661444338813524296592539084778436332638169017452170450092162160631302176410189......

最初我想在每 38 个数字上拆分:

lineSplitted = Enumerable.Range(0, (line.Length / 38)).Select(l => line.Substring(l * 38, 38)).ToArray();

但如上所述,这不是一个有保证的分隔符。所以看来我必须在构建流时注入(inject)一个定界符。例如,像 1971791 这样的回文,我可以在阅读时识别并用于拆分。

这是解决从流中识别和提取每个加密段以进行解密的问题的正确方法吗?


编辑:

所以从评论来看,分隔符似乎是一种使用方法。按照@usr 的建议避免使用数字定界符,我使用 split |它当然可以很好地进行 base64 编码和解码。

最佳答案

您愿意使用非数字分隔符吗?考虑使用 Split('|')

关于c# - 将数字流分成更小的 block 进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26978916/

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