请理解我要提出的问题是学术性的,因此在实际应用中可能没有意义。
我有一个正常运行的示例程序。该程序将数据写入文件,其中每一行都是一个字节。这些行是这些字节的数字表示。此数字表示形式是字节的128位RSA加密的结果。
例如第一行:
96044789616462297850953361101470572607转换(解密)为60,字节60当然是<,因为这是xml文档,所以是正确的。
现在,该示例程序具有明显的优势,因为加密的源文件在所有正确的位置都有换行符。
我的自我追求是尝试从一堆数字中读取。因此,示例程序读取了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();
但是如上所述,这不是保证的定界符。因此,似乎在构建流时必须注入定界符。例如,像1971791这样的回文可以在阅读时识别并用于拆分。
这是识别和从流中解密每个加密段并将其拔出以便解密的正确方法吗?
编辑:
因此,从注释看来,分隔符是使用的方法。以下@usr建议避免使用数字定界符,我使用split | 当然,base64可以对它进行编码和解码。
您愿意使用非数字定界符吗?考虑使用Split('|')
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句