この記事では、DSAキーペアを使用してXML署名を生成するJavaの方法について説明します。参照のためにそれを共有してください。特定の実装方法は次のとおりです。
MainClass.javaコードは次のとおりです。
コードコピーは次のとおりです。Java.security.keypairをインポートします。
java.security.keypairgeneratorをインポートします。
java.security.securerandomをインポートします。
java.util.collectionsをインポートします。
javax.xml.crypto.dsig.canonicalizationmethodをインポートします。
javax.xml.crypto.dsig.digestmethodをインポートします。
javax.xml.crypto.dsig.Referenceをインポートします。
javax.xml.crypto.dsig.signaturemethodをインポートします。
javax.xml.crypto.dsig.signedinfoをインポートします。
javax.xml.crypto.dsig.xmlsignatureをインポートします。
javax.xml.crypto.dsig.xmlsignaturefactoryをインポートします。
javax.xml.crypto.dsig.keyinfo.keyinfoをインポートします。
javax.xml.crypto.dsig.keyinfo.keyinfofactoryをインポートします。
javax.xml.crypto.dsig.keyinfo.keyvalue;
javax.xml.crypto.dsig.spec.c14nmethodparameterspecをインポートします。
パブリッククラスのメインクラス{
public static void main(string [] args)スロー例外{
keypairgenerator kpg = keypairgenerator.getInstance( "dsa");
kpg.Initialize(1024、new Securerandom());
keypair dsakeypair = kpg.generatekeypair();
xmlsignaturefactory sigfactory = xmlsignaturefactory.getInstance();
参照ref = sigfactory.newReference( "#body"、sigfactory.newdigestmethod(digestmethod.sha1、null));
signedinfo signedinfo = sigfactory.newsignedinfo(sigfactory.newcanonicalizationmethod(
canonicalizationmethod.inclusive_with_comments、(c14nmethodparameterspec)null)、sigfactory.newsignaturemethod(signaturemethod.dsa_sha1、null)、collections.singletonlist(ref));
keyInfofactory kif = sigfactory.getKeyInfofactory();
keyvalue kv = kif.newkeyvalue(dsakeypair.getpublic());
keyInfo keyInfo = kif.newkeyinfo(collections.singletonlist(kv));
xmlsignature xmlsig = sigfactory.newxmlsignature(signedinfo、keyinfo);
}
}
この記事がみんなのJavaプログラミングに役立つことを願っています。