首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不超过原始数据大小的情况下对数据进行加密?

如何在不超过原始数据大小的情况下对数据进行加密?
EN

Stack Overflow用户
提问于 2011-02-15 21:28:22
回答 3查看 1.6K关注 0票数 0

我的问题很简单我期待的是加密算法,

我需要加密原始数据(文本等)加密数据大小应该与原始数据大小相同吗?亲切地分享你的想法?

示例:原始数据为"test“(因此文本长度为4),预期的加密数据应为"etst”(因此长度为4)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-15 21:34:04

这并不总是可行的,特别是在数据量很少的情况下。我非常确定所有的标准算法都是在“块”上工作的,“块”通常是密钥的长度。因此,除非你使用一个非常弱的密钥,或者使用像替换密码或凯撒密码这样的弱密钥,否则你的加密数据最终可能会比原始数据长一点。

实际上,根据this page,您可以使用流密码并获得与输入相同大小的加密文本。给出的示例是RC4。

票数 3
EN

Stack Overflow用户

发布于 2011-02-15 21:41:16

除非您使用简单的替换密码(用不同的字母或符号替换字母),否则您会看到文件的大小会增加。如果您使用替换密码,则这些密码非常容易破解。为什么需要保持文件的大小不变?

票数 0
EN

Stack Overflow用户

发布于 2011-02-15 22:59:08

大多数加密算法都对数据块起作用。例如,AES适用于128位或16字节的块。如果一个块溢出了1个字节,那么AES必须需要另一个块的数据。

使用AES,您将始终得到16字节的倍数的结果。

如果你得到的数据要大得多,你应该确保你输入的是字节流。如果您出于某种原因,将文件复制为文本,.Net会将其转换为Unicode,这将把您的数据从8位/字符更改为16位/字符,这将使输出的大小加倍。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5004227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档