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程序设计有所帮助。
热门推荐
4 火把节祝福语简短
10 新年公司祝福语简短牛年
11 孩子新年祝福语简短精辟
12 退休的祝福语简短精辟
13 生日祝福语简短霸气男
14 朋友聚会结束祝福语简短
15 爸爸寿宴仪式祝福语简短
16 朝鲜元旦祝福语大全简短
17 伴娘祝福语长文案简短
18 同学毕业祝福语有趣简短