Este artigo descreve o método de Java usando pares de chave DSA para gerar assinaturas XML. Compartilhe para sua referência. O método de implementação específico é o seguinte:
O código mainClass.java é o seguinte:
A cópia do código é a seguinte: importar java.security.keypair;
importar java.security.KeypairGenerator;
importar java.Security.SecureRandom;
importar java.util.Collections;
importar javax.xml.crypto.dsig.canonicalizationMethod;
importar javax.xml.crypto.dsig.digestmethod;
importar javax.xml.crypto.dsig.reference;
importar javax.xml.crypto.dsig.signatureremethod;
importar javax.xml.crypto.dsig.signedInfo;
importar javax.xml.crypto.dsig.xmlsignature;
importar javax.xml.crypto.dsig.xmlsignaturefactory;
importar javax.xml.crypto.dsig.keyinfo.keyinfo;
importar javax.xml.crypto.dsig.keyInfo.keyinfofactory;
importar javax.xml.crypto.dsig.keyinfo.keyValue;
importar javax.xml.crypto.dsig.spec.c14nmethodParameterspec;
classe pública mainClass {
public static void main (string [] args) lança exceção {
KeypairGenerator kpg = keypairGenerator.getInstance ("dsa");
kpg.initialize (1024, new SecureRandom ());
Keypair dsakeypair = kpg.GeraReKeyypair ();
XmlSignaturefactory sigFactory = xmlSignatureFactory.getInstance ();
Referência ref = sigfactory.newreference ("#body", sigfactory.newDigestMethod (digermethod.sha1, null));
SignetedInfo SignetedInfo = sigfactory.newsignedInfo (sigfactory.newCanonicalizationMethodMod (
Canonicalizaçãomethod.inclusive_with_comments, (c14nmethodParameterspec) null), sigfactory.newsignaturemethod (signatureremethod.dsa_sha1, null), coleções.singletonList (ref));
KeyInfofactory kif = sigfactory.getKeyInfofactory ();
Keyvalue kv = kif.newKeyValue (dsakeypair.getpublic ());
KeyInfo keyInfo = KIF.NewKeyinfo (Coleções.singletonList (KV));
XmlSignature xmlsig = sigfactory.newxmlSignature (SignetedInfo, keyInfo);
}
}
Espero que este artigo seja útil para a programação Java de todos.