モジュール java.base
パッケージ java.security

クラスSignature

java.lang.Object
java.security.SignatureSpi
java.security.Signature

public abstract class Signature extends SignatureSpi
Signatureクラスは、アプリケーションにデジタル・シグネチャ・アルゴリズムの機能を提供するために使用されます。 デジタル署名は、認証やデジタル・データの整合性を保証するために使用されます。

シグネチャ・アルゴリズムは、とりわけDSAとSHA-256を使用するNIST標準DSAとすることができます。 SHA-256メッセージ・ダイジェスト・アルゴリズムを使用するDSAアルゴリズムは、SHA256withDSAとして指定できます。 RSAの場合、署名アルゴリズムは、例えば、SHA256withRSAとして指定することができます。 デフォルトはないので、必ずアルゴリズムの名前を指定しなければいけません。

Signatureオブジェクトを使用して、デジタル・シグネチャを生成および検証できます。

データのシグネチャまたはシグネチャの検証にSignatureオブジェクトを使用する3つのフェーズがあります:

  1. 次のどちらかの方法による初期化
    • 公開キーを使用する方法。Signatureを検証用として初期化する(initVerifyを参照)
    • 非公開キー(およびオプションでセキュリティ保護された乱数ジェネレータ)を使用する方法。Signatureオブジェクトを署名用として初期化する(initSign(PrivateKey)およびinitSign(PrivateKey, SecureRandom)を参照)。
  2. 更新

    初期化の種類に応じて、署名または検証の対象となるバイトを更新します。 updateメソッドを参照してください。

  3. すべての更新済みバイトに対して署名または署名の検証を行います。 signメソッドおよびverifyメソッドを参照してください。

このクラスは、歴史的な事情からSignatureSpiクラスから拡張された抽象クラスになっていることに注意してください。 アプリケーションの開発者は、このSignatureクラスでのメソッド定義だけに配慮してください。スーパー・クラスのすべてのメソッドは、デジタル署名アルゴリズムの独自の実装を提供する必要がある暗号サービス・プロバイダで使用されることを想定しています。

Javaプラットフォームの実装は、すべて次の標準のSignatureアルゴリズムをサポートする必要があります。

  • SHA1withDSA
  • SHA256withDSA
  • SHA1withRSA
  • SHA256withRSA
これらのアルゴリズムについては、Javaセキュリティ標準アルゴリズム名仕様の「シグネチャ・セクション」を参照してください。 サポートされているその他のアルゴリズムについては、実装のリリース・ドキュメントを参照してください。

導入されたバージョン:
1.1