首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AES算法输入输出限制

AES算法输入输出限制
EN

Stack Overflow用户
提问于 2010-12-23 16:03:52
回答 2查看 15.8K关注 0票数 4

我想在我的应用程序中使用AES加密。我遇到了一些aes算法的开源实现。通过查看它们,我对以下参数感到困惑:

  1. AES密钥长度需要指出的是,键长应该是128、192或256字节。如果我的钥匙仅仅是五位数,即23467
  2. AES纯文本长度: aes纯文本长度有限制吗?
  3. AES输出:如果我的键长度是5位,纯文本是10个字符,那么aes输出字符串的最小大小是多少。

有谁可以帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-23 16:23:50

AES密钥长度指出密钥长度应为128位、192位或256位。如果我的钥匙仅仅是五位数,即23467

看来你把钥匙当成密码了。不是的。密码钥匙不是用来记忆的。这是一个长串随机生成的字节,应该存储在安全的地方。

不过,您可以从密码派生密码密钥,例如使用哈希函数。在这种情况下,您输入234567并使用结果摘要作为键。然而,这有一些安全含义,因为它使您的密钥容易受到字典和彩虹表攻击。查找“基于密码的加密”,了解如何安全地处理此问题的详细信息;特别是查看PBKDF2,在RFC2898中描述。

AES纯文本长度: aes纯文本长度有限制吗?

AES是块密码,是加密系统的底层构建块。它本身只能加密单个数据块(16个字节),因此密码学家创建了几种“操作模式”,使我们能够加密任意长度的明文。CTR是操作模式的一个很好的例子,它不需要任何填充并且可以并行化。

AES输出:如果我的键长度是5位,纯文本是10个字符,那么aes输出字符串的最小大小是多少。

这完全取决于操作方式。在您的情况下,它可能是10 (当不需要填充,例如CTR)或16 (对于基于块的模式,如CBC)。

票数 9
EN

Stack Overflow用户

发布于 2010-12-23 16:19:36

  1. 我想你是说128和256。(不是198.)
  2. 那不是钥匙。那是密码。您可以使用像PBKDF1 (google )这样的算法从密码中派生密钥。
  3. 不是的。AES是一个分组密码。它适用于与键大小相同的输入块。你可以使用任意多个块,把你的输入切成128位块。确保您对AES使用CBC或类似的模式。
  4. 您的密钥是128或256位。您的输入将是80位(10*8),填充到128或256。您的输出长度与键大小相同。

尝试找到一个密码库,它为你完成了大部分工作。你不想乱搞一个基本的AES函数。你还需要处理IVs,AES模式,可能是MAC等等。我不能推荐任何东西,因为你没有说你想使用哪种语言。

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

https://stackoverflow.com/questions/4520405

复制
相关文章

相似问题

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