web-dev-qa-db-ja.com

javaの暗号パディング文字列は何ですか

誰もが暗号のパディング方式について話しますが、暗号に渡す必要がある実際の文字列は何ですか?それらが対称か非対称かは気​​にしません。可能な値のリストが欲しいだけです。

27
Roy Hinkley

パディングには、PKCS-7、ゼロ、ISO 10126、ANSI X.923など、多くのタイプがあります。
この概念を完全に理解していないように見えるため、 padding を読むことをお勧めします。

次に、暗号化 salt を参照している可能性があります。

編集
Javaプラットフォームのすべての実装は、括弧で囲まれたキーサイズの次の標準暗号変換をサポートするために必要です。

  • AES/CBC/NoPadding(128)
  • AES/CBC/PKCS5パッディング(128)
  • AES/ECB/NoPadding(128)
  • AES/ECB/PKCS5パッディング(128)
  • DES/CBC/NoPadding(56)
  • DES/CBC/PKCS5パッディング(56)
  • DES/ECB/NoPadding(56)
  • DES/ECB/PKCS5パッディング(56)
  • DESede/CBC/NoPadding(168)
  • DESede/CBC/PKCS5パッディング(168)
  • DESede/ECB/NoPadding(168)
  • DESede/ECB/PKCS5パッディング(168)
  • RSA/ECB/PKCS1パッディング(1024、2048)
  • RSA/ECB/OAEPWithSHA-1AndMGF1Padding(1024、2048)
  • RSA/ECB/OAEPWithSHA-256AndMGF1Padding(1024、2048)

リストを見つけることができます こちら

Edit 2
Bouncy Castleの仕様を見つけることができます こちら 。使用可能なすべての埋め込みスキームがリストされます。

47

ブロック暗号にはパディングが必要ですが、ストリーム暗号には必要ありません。ブロックサイファーはブロック全体を暗号化するため、パディングが必要です。メッセージは、ブロックの整数と正確に一致しない場合があります。パディングは、メッセージ長を次のブロック境界まで延長するために使用されます。

詳細については、ウィキペディアの Cryptographic padding に関する記事を参照してください。

ほとんどの目的で、PKCS#7(別名PKCS#5)パディングが使用されます。nバイト、すべての値n:

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