Cet article décrit la méthode de Java à l'aide de paires de clés DSA pour générer des signatures XML. Partagez-le pour votre référence. La méthode de mise en œuvre spécifique est la suivante:
Le code Mainclass.java est le suivant:
La copie de code est la suivante: Importer java.security.KeyPair;
Importer java.security.KeyPairGenerator;
Importer Java.Security.SeCurère et;
Importer java.util.collections;
Importer javax.xml.crypto.dsig.canicicalizationMethod;
Importer javax.xml.crypto.dsig.digestMethod;
Importer javax.xml.crypto.dsig.Reference;
Importer javax.xml.crypto.dsig.signatueMethod;
import javax.xml.crypto.dsig.signedInfo;
Importer javax.xml.crypto.dsig.xmlsignature;
Importer javax.xml.crypto.dsig.xmlSignatureFactory;
Importer javax.xml.crypto.dsig.keyinfo.keyinfo;
Importer javax.xml.crypto.dsig.keyinfo.keyinfofactory;
Importer javax.xml.crypto.dsig.keyinfo.keyValue;
Importer javax.xml.crypto.dsig.spec.c14nMethodParameterspec;
classe publique Mainclass {
public static void main (String [] args) lève une exception {
KeyPairGenerator kpg = keypairgenerator.getInstance ("dsa");
kpg.Initialize (1024, new SecureRandom ());
Keypair dSakeyPair = kpg.generateKeyPair ();
XmlSignatureFactory Sigfactory = xmlSignatureFactory.getInstance ();
Référence Ref = Sigfactory.NewReference ("# Body", sigfactory.newdigestMethod (digestMethod.sha1, null));
SignedInfo SignedInfo = Sigfactory.NewSignedInfo (Sigfactory.NewCanonicalizationMethod (
CanonicalisationMethod.inclusif_With_Comments, (C14NMethodParameterspec) NULL), Sigfactory.newSignatureMethod (Signaturmethod.dsa_sha1, null), Collection.Singletonlist (Ref));
KeyInfofactory kif = sigfactory.getKeyInFactory ();
KeyValue kv = kif.newkeyvalue (dSakeyPair.getPublic ());
KeyInfo keyInfo = kif.newKeyInfo (Collection.SingletonList (KV));
XMLSIGNATURE XMLSIG = SIGFACTORY.NEWXMLSIGNATURE (SignEdInfo, KeyInfo);
}
}
J'espère que cet article sera utile à la programmation Java de tous.