每个人都在谈论密码中的填充方案,但是需要传递给密码的实际字符串是什么?我不在乎它们是对称的还是不对称的,我只想要一个可能值的列表。
问问题
63088 次
2 回答
51
填充有很多类型,PKCS-7、零、ISO 10126、ANSI X.923 等。
我建议你阅读填充,因为你似乎没有完全理解这个概念。
然后有可能您指的是加密salt。
编辑
Java 平台的每个实现都需要支持以下标准密码转换,括号中的密钥大小:
- AES/CBC/NoPadding (128)
- AES/CBC/PKCS5Padding (128)
- AES/ECB/无填充 (128)
- AES/ECB/PKCS5 填充 (128)
- DES/CBC/无填充 (56)
- DES/CBC/PKCS5填充 (56)
- DES/ECB/无填充 (56)
- DES/ECB/PKCS5填充 (56)
- DESede/CBC/NoPadding (168)
- DESede/CBC/PKCS5Padding (168)
- DESede/ECB/无填充 (168)
- DESede/ECB/PKCS5Padding (168)
- RSA/ECB/PKCS1填充(1024、2048)
- RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
- RSA/ECB/OAEPWithSHA-256AndMGF1Padding(1024、2048)
你可以在这里找到一份清单。
编辑 2您可以在此处
找到 Bouncy Castle 规范。它列出了所有可用的填充方案。
于 2012-06-07T15:49:20.243 回答
10
块密码需要填充,流密码不需要。块密码需要填充,因为它们会加密整个块,并且您的消息可能与整个块数不完全匹配。填充用于将消息长度扩展到下一个块边界。
有关详细信息,请参阅有关加密填充的 Wikipedia 文章。
对于大多数目的,使用 PKCS#7(又名 PKCS#5)填充:n 个字节,所有值 n:
01
02 02
03 03 03
...
10 10 10 10 ... 10 10
于 2012-06-07T16:33:47.913 回答