【每日一步】java加密技术

【每日一步】java加密技术

ID:8977169

大小:322.50 KB

页数:37页

时间:2018-04-13

【每日一步】java加密技术_第1页
【每日一步】java加密技术_第2页
【每日一步】java加密技术_第3页
【每日一步】java加密技术_第4页
【每日一步】java加密技术_第5页
资源描述:

《【每日一步】java加密技术》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ECCECC-EllipticCurvesCryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。在软件注册保护方面起到很大的作用,一般的序列号通常由该算法产生。当我开始整理《Java加密技术(二)》的时候,我就已经在开始研究ECC了,但是关于Java实现ECC算法的资料实在是太少了,无论是国内还是国外的资料,无论是官方还是非官方的解释,最终只有一种答案——ECC算法在jdk1.5后加入支持,目前仅仅只能完成密钥的生成与解析。如果想要获得ECC算法实现,需要调用硬件完成加密/解密(ECC算法相当耗费资源,如果单纯使用CPU进行加密/

2、解密,效率低下),涉及到JavaCard领域,PKCS#11。其实,PKCS#11配置很简单,但缺乏硬件设备,无法尝试!尽管如此,我照旧提供相应的Java实现代码,以供大家参考。通过java代码实现如下:Java代码1importjava.math.BigInteger;2importjava.security.Key;3importjava.security.KeyFactory;4importjava.security.interfaces.ECPrivateKey;5importjava.security.interfaces.ECPublicKey;6importjava.s

3、ecurity.spec.ECFieldF2m;7importjava.security.spec.ECParameterSpec;8importjava.security.spec.ECPoint;9importjava.security.spec.ECPrivateKeySpec;10importjava.security.spec.ECPublicKeySpec;11importjava.security.spec.EllipticCurve;12importjava.security.spec.PKCS8EncodedKeySpec;13importjava.security

4、.spec.X509EncodedKeySpec;1importjava.util.HashMap;2importjava.util.Map;34importjavax.crypto.Cipher;5importjavax.crypto.NullCipher;67importsun.security.ec.ECKeyFactory;8importsun.security.ec.ECPrivateKeyImpl;9importsun.security.ec.ECPublicKeyImpl;1011/**12*ECC安全编码组件13*14*@author梁栋15*@version1.01

5、6*@since1.017*/18publicabstractclassECCCoderextendsCoder{1920publicstaticfinalStringALGORITHM="EC";21privatestaticfinalStringPUBLIC_KEY="ECCPublicKey";22privatestaticfinalStringPRIVATE_KEY="ECCPrivateKey";12/**3*解密
4*用私钥解密5*6*@paramdata7*@paramkey8*@return9*@throwsException10*/11publicstatic

6、byte[]decrypt(byte[]data,Stringkey)throwsException{12//对密钥解密13byte[]keyBytes=decryptBASE64(key);1415//取得私钥16PKCS8EncodedKeySpecpkcs8KeySpec=newPKCS8EncodedKeySpec(keyBytes);17KeyFactorykeyFactory=ECKeyFactory.INSTANCE;1819ECPrivateKeypriKey=(ECPrivateKey)keyFactory20.generatePrivate(pkcs8KeySpe

7、c);211ECPrivateKeySpececPrivateKeySpec=newECPrivateKeySpec(priKey.getS(),2priKey.getParams());34//对数据解密5//TODOChipher不支持EC算法未能实现6Ciphercipher=newNullCipher();7//Cipher.getInstance(ALGORITHM,keyFactory.getProvider());8cipher.init(C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。