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程序设计有所帮助。
热门推荐
10 清新唯美生日祝福语简短
11 过年祝福语闺蜜简短
12 家庭聚餐的简短祝福语
13 端午祝福语安康-简短优美
14 正月十五简短谜语祝福语
15 忌日祝福语简短10字
16 回复姐姐生日祝福语简短
17 订婚祝福语简短诗句
18 小班小孩生日祝福语简短