什么是java中的密码填充字符串

2022-09-01 09:33:10

每个人都在谈论密码中的填充方案,但是需要传递到密码中的实际字符串是什么?我不在乎它们是对称的还是不对称的,我只想要一个可能值的列表。


答案 1

有许多类型的填充,PKCS-7,Zero,ISO 10126,ANSI X.923等,
我建议您阅读填充,因为您似乎没有完全理解这个概念。

然后有可能你指的是加密

编辑
Java 平台的每个实现都需要支持以下标准密码转换,并在括号中键入大小:

  • 自动计算/全排血/无填充 (128)
  • AES/CBC/PKCS5填充 (128)
  • AES/ECB/NoPadding (128)
  • AES/ECB/PKCS5填充 (128)
  • DES/CBC/NoPadding (56)
  • DES/CBC/PKCS5填充 (56)
  • 北欧/欧洲央行/无填充 (56)
  • DES/ECB/PKCS5填充 (56)
  • 德赛德/全血细胞计数/无填充 (168)
  • 德赛德/CBC/PKCS5填充 (168)
  • 德赛德/欧洲央行/无垫 (168)
  • 德赛德/欧洲央行/PKCS5填充 (168)
  • RSA/ECB/PKCS1填充 (1024, 2048)
  • RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
  • RSA/ECB/OAEPWITHSHA-256AndMGF1Padding (1024, 2048)

您可以在此处找到列表。

编辑 2
您可以在此处找到充气城堡规范。它列出了所有可用的填充方案。


答案 2

块密码需要填充,流密码不需要。块密码需要填充,因为它们加密整个块,并且您的消息可能与整数个块不完全匹配。填充用于将消息长度扩展到下一个块边界。

请参阅维基百科上关于加密填充的文章,了解很多细节。

对于大多数用途,使用PKCS#7(又名PKCS#5)填充:n字节,所有值n:

01
02 02
03 03 03
...
10 10 10 10 ... 10 10

推荐