我想在我的应用程序中使用AES加密.我遇到过aes算法的一些开源实现.通过查看它们,我对以下参数感到困惑:
AES密钥长度.提到密钥长度应为128,192或256字节.如果我的密钥只是五位数,即23467,该怎么办?
AES明文长度:对aes明文长度有什么限制吗?
AES输出:如果我的密钥长度为5位且纯文本为10个字符,则aes输出字符串的最小大小是多少.
谁能帮我?
AES密钥长度.提到密钥长度应为128,192或256位.如果我的密钥只是五位数,即23467,该怎么办?
看起来你正在考虑将密钥作为各种密码.事实并非如此.加密密钥并不意味着要记住.它是一长串随机生成的字节,应存储在安全的地方.
但是,您可以从密码派生加密密钥,例如使用哈希函数.在这种情况下,您输入234567并使用生成的摘要作为键.但是,这会带来一些安全隐患,因为它会使您的密钥易受字典和彩虹表攻击.查找"基于密码的加密",了解如何安全地处理此问题; 特别是,看看RFC2898中描述的PBKDF2.
AES明文长度:对aes明文长度有什么限制吗?
AES是分组密码,是加密系统的基础构建块.它本身只能加密单个数据块(16个字节),因此密码学家创建了几种"操作模式",使我们能够加密任意长度的明文.CTR是一个很好的操作模式示例,不需要任何填充,可以并行化.
AES输出:如果我的密钥长度为5位且纯文本为10个字符,则aes输出字符串的最小大小是多少.
这完全取决于操作模式.在您的情况下,它可能是10(当不需要填充时,例如CTR)或16(对于基于块的模式,如CBC).
| 归档时间: |
|
| 查看次数: |
13525 次 |
| 最近记录: |