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

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

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

那么你有可能指的是加密盐 。

编辑
Java平台的每个实现都需要支持以下标准Cipher转换,并在括号中使用密钥:

  • AES / CBC / NoPadding(128)
  • AES / CBC / PKCS5Padding(128)
  • AES / ECB / NoPadding(128)
  • AES / ECB / PKCS5Padding(128)
  • DES / CBC / NoPadding(56)
  • DES / CBC / PKCS5Padding(56)
  • DES / ECB / NoPadding(56)
  • DES / ECB / PKCS5Padding(56)
  • DESede / CBC / NoPadding(168)
  • DESede / CBC / PKCS5Padding(168)
  • DESede / ECB / NoPadding(168)
  • DESede / ECB / PKCS5Padding(168)
  • RSA / ECB / PKCS1Padding(1024,2048)
  • RSA / ECB / OAEPWithSHA-1AndMGF1Padding(1024,2048)
  • RSA / ECB / OAEPWithSHA-256AndMGF1Padding(1024,2048)

你可以在这里找到一个列表。

编辑2
您可以在这里找到Bouncy Castle规范。 它列出了所有可用的填充方案。

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

有关详细信息,请参阅维基百科有关加密填充的文章。

对于大多数用途,使用PKCS#7(aka PKCS#5)填充:n个字节,全部值n:

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