我的问题很简单我期待的是加密算法,
我需要加密原始数据(文本等)加密数据大小应该与原始数据大小相同吗?亲切地分享你的想法?
示例:原始数据为"test“(因此文本长度为4),预期的加密数据应为"etst”(因此长度为4)。
发布于 2011-02-15 21:34:04
这并不总是可行的,特别是在数据量很少的情况下。我非常确定所有的标准算法都是在“块”上工作的,“块”通常是密钥的长度。因此,除非你使用一个非常弱的密钥,或者使用像替换密码或凯撒密码这样的弱密钥,否则你的加密数据最终可能会比原始数据长一点。
实际上,根据this page,您可以使用流密码并获得与输入相同大小的加密文本。给出的示例是RC4。
发布于 2011-02-15 21:41:16
除非您使用简单的替换密码(用不同的字母或符号替换字母),否则您会看到文件的大小会增加。如果您使用替换密码,则这些密码非常容易破解。为什么需要保持文件的大小不变?
发布于 2011-02-15 22:59:08
大多数加密算法都对数据块起作用。例如,AES适用于128位或16字节的块。如果一个块溢出了1个字节,那么AES必须需要另一个块的数据。
使用AES,您将始终得到16字节的倍数的结果。
如果你得到的数据要大得多,你应该确保你输入的是字节流。如果您出于某种原因,将文件复制为文本,.Net会将其转换为Unicode,这将把您的数据从8位/字符更改为16位/字符,这将使输出的大小加倍。
https://stackoverflow.com/questions/5004227
复制相似问题