快速业务通道

Java加密技术(六) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

Java加密技术(六)

时间:2010-12-12

接下来我们介绍DSA数字签名,非对称加密的另一种实现。

DSA

DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名。如果数据和签名不匹配则认为验证失败!数字签名的作用就是校验数据在传输过程中不被修改。数字签名,是单向加密的升级!Java加密技术(六) - 编程入门网

Java加密技术(六) - 编程入门网

Java加密技术(六) - 编程入门网

Java紗畜室宝?鎗?(2)

扮寂:2010-12-12

宥狛java旗鷹糞?泌和?Coder窃需 Java紗畜室宝?匯?

Java旗鷹

import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SecureRandom; import java.security.Signature; import java.security.interfaces.DSAPrivateKey; import java.security.interfaces.DSAPublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.HashMap; import java.util.Map; /** * DSA芦畠園鷹怏周 * * @author 塑彊 * @version 1.0 * @since 1.0 */ public abstract class DSACoder extends Coder {     public static final String ALGORITHM = "DSA";     /**      * 潮範畜埒忖准方      *      * <pre>      * DSA      * Default Keysize 1024      * Keysize must be a multiple of 64, ranging from 512 to 1024 (inclusive).      * </pre>      */     private static final int KEY_SIZE = 1024;     /**      * 潮範嶽徨      */     private static final String DEFAULT_SEED = "0f22507a10bbddd07d8a3082122966e3";     private static final String PUBLIC_KEY = "DSAPublicKey";     private static final String PRIVATE_KEY = "DSAPrivateKey";     /**      * 喘暴埒斤佚連伏撹方忖禰兆      *      * @param data      *            紗畜方象      * @param privateKey      *            暴埒      *      * @return      * @throws Exception      */     public static String sign(byte[] data, String privateKey) throws Exception {         // 盾畜喇base64園鷹議暴埒         byte[] keyBytes = decryptBASE64(privateKey);         // 更夛PKCS8EncodedKeySpec斤?         PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);         // KEY_ALGORITHM 峺協議紗畜麻隈         KeyFactory keyFactory = KeyFactory.getInstance(ALGORITHM);         // 函暴埒革斤?         PrivateKey priKey = keyFactory.generatePrivate(pkcs8KeySpec);         // 喘暴埒斤佚連伏撹方忖禰兆         Signature signature = Signature.getInstance(keyFactory.getAlgorithm());         signature.initSign(priKey);         signature.update(data);         return 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号