public class CipherInputStream extends FilterInputStream
たとえば、Cipherが復号化用に初期化されていると、CipherInputStreamは、復号化されたデータを返す前に、データを読み込んで復号化しようとします。
 このクラスは、上位クラスjava.io.FilterInputStreamおよびjava.io.InputStreamのセマンティックス、特に失敗セマンティックスに厳密に従います。 このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。 さらに、このクラスは、上位クラスがスローしない例外をすべてキャッチします。 特に、skipメソッドはスキップを行い、availableメソッドはカプセル化されたCipherにより処理されたデータだけをカウントします。 このクラスは、復号化時の整合性チェックの失敗によってスローされるBadPaddingExceptionおよびその他の例外をキャッチできます。 これらの例外は再スローされないため、クライアントは整合性チェックが失敗したことを通知されません。 この動作のため、このクラスは操作の認証済モードで復号化との使用には適していない可能性があります(GCMなど)。 認証済暗号化が必要なアプリケーションは、このクラスを使用するかわりに、Cipher APIを直接使用できます。 
 
このクラスを使用するプログラマは、このクラスで定義されていないメソッド、またはオーバーライドされていないメソッド(あとでスーパー・クラスのいずれかに追加された新しいメソッドやコンストラクタなど)を絶対に使用しないでください。それらのメソッドの設計と実装では、CipherInputStreamに関するセキュリティ上の影響が考慮されていない可能性があるためです。
InputStream, FilterInputStream, Cipher, CipherOutputStreamin| 修飾子 | コンストラクタ | 説明 | 
|---|---|---|
| protected  | CipherInputStream(InputStream is) | InputStreamからCipherを指定しないでCipherInputStreamを構築します。 | 
|   | CipherInputStream(InputStream is, Cipher c) | InputStreamおよびCipherからCipherInputStreamを構築します。 | 
| 修飾子と型 | メソッド | 説明 | 
|---|---|---|
| int | available() | ブロックせずに入力ストリームから読み込むことができるバイト数を返します。 | 
| void | close() | この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。 | 
| boolean | markSupported() | この入力ストリームが markおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。 | 
| int | read() | この入力ストリームからデータの次のバイトを読み込みます。 | 
| int | read(byte[] b) | 最大 b.lengthバイトのデータを、この入力ストリームからバイト配列に読み込みます。 | 
| int | read(byte[] b, int off, int len) | 最大 lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。 | 
| long | skip(long n) | ブロックせずにこの入力ストリームから読み込むことができるバイトから nバイトの入力をスキップします。 | 
mark, resetpublic CipherInputStream(InputStream is, Cipher c)
is - 処理される入力ストリームc - 初期化されたCipherオブジェクトprotected CipherInputStream(InputStream is)
is - 処理される入力ストリームpublic int read()
         throws IOException
0 - 255の範囲のintとして返されます。 ストリームの終わりに達したために読み込むバイトがない場合は、-1が返されます。 入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。 
 read、クラスFilterInputStream-1。IOException - 入出力エラーが発生した場合。FilterInputStream.inpublic int read(byte[] b)
         throws IOException
b.lengthバイトのデータを、この入力ストリームからバイト配列に読み込みます。
 
 InputStreamのreadメソッドは、引数b、0、およびb.lengthの3つの引数をとるreadメソッドを呼び出します。
read、クラスFilterInputStreamb - データの読込み先のバッファ。-1。IOException - 入出力エラーが発生した場合。InputStream.read(byte[], int, int)public int read(byte[] b,
                int off,
                int len)
         throws IOException
lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。 このメソッドは、入力の一部が利用できるようになるまでブロックします。 最初の引数がnullの場合は、lenまでのバイトが読み込まれたあと廃棄されます。 read、クラスFilterInputStreamb - データの読込み先のバッファ。off - 転送先配列の開始オフセットbuflen - 読み込まれる最大バイト数。-1。IOException - 入出力エラーが発生した場合。InputStream.read()public long skip(long n)
          throws IOException
nバイトの入力をスキップします。
 スキップされるバイトが要求されたバイトより少ない場合があります。 実際にスキップされたバイト数は、nまたはavailableを呼び出した結果のうち小さい方です。 nがゼロより小さい場合、バイトはスキップされません。 
 
スキップされた実際のバイト数が返されます。
skip、クラスFilterInputStreamn - スキップされるバイト数。IOException - 入出力エラーが発生した場合。public int available()
              throws IOException
InputStreamのavailableメソッドは0を返します。 サブクラスはこのメソッドをオーバーライドする必要があります。 available、クラスFilterInputStreamIOException - 入出力エラーが発生した場合。public void close()
           throws IOException
 CipherInputStreamのcloseメソッドはそのベースとなる入力ストリームのcloseメソッドを呼び出します。
close、インタフェースCloseableclose、インタフェースAutoCloseableclose、クラスFilterInputStreamIOException - 入出力エラーが発生した場合。FilterInputStream.inpublic boolean markSupported()
markおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。markSupported、クラスFilterInputStreammarkメソッドとresetメソッドをサポートしていないので、false。InputStream.mark(int), InputStream.reset() バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。