Java使用DSA密钥对生成XML签名的方法
本文实例讲述了Java使用DSA密钥对生成XML签名的方法。分享给大家供大家参考。具体实现方法如下:
MainClass.java代码如下:
importjava.security.KeyPair;
importjava.security.KeyPairGenerator;
importjava.security.SecureRandom;
importjava.util.Collections;
importjavax.xml.crypto.dsig.CanonicalizationMethod;
importjavax.xml.crypto.dsig.DigestMethod;
importjavax.xml.crypto.dsig.Reference;
importjavax.xml.crypto.dsig.SignatureMethod;
importjavax.xml.crypto.dsig.SignedInfo;
importjavax.xml.crypto.dsig.XMLSignature;
importjavax.xml.crypto.dsig.XMLSignatureFactory;
importjavax.xml.crypto.dsig.keyinfo.KeyInfo;
importjavax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
importjavax.xml.crypto.dsig.keyinfo.KeyValue;
importjavax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
publicclassMainClass{
publicstaticvoidmain(String[]args)throwsException{
KeyPairGeneratorkpg=KeyPairGenerator.getInstance("DSA");
kpg.initialize(1024,newSecureRandom());
KeyPairdsaKeyPair=kpg.generateKeyPair();
XMLSignatureFactorysigFactory=XMLSignatureFactory.getInstance();
Referenceref=sigFactory.newReference("#Body",sigFactory.newDigestMethod(DigestMethod.SHA1,null));
SignedInfosignedInfo=sigFactory.newSignedInfo(sigFactory.newCanonicalizationMethod(
CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS,(C14NMethodParameterSpec)null),sigFactory.newSignatureMethod(SignatureMethod.DSA_SHA1,null),Collections.singletonList(ref));
KeyInfoFactorykif=sigFactory.getKeyInfoFactory();
KeyValuekv=kif.newKeyValue(dsaKeyPair.getPublic());
KeyInfokeyInfo=kif.newKeyInfo(Collections.singletonList(kv));
XMLSignaturexmlSig=sigFactory.newXMLSignature(signedInfo,keyInfo);
}
}
希望本文所述对大家的java程序设计有所帮助。
热门推荐
1 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法