java实现文件的rsa和des加密

java实现文件的rsa和des加密

ID:6031862

大小:80.50 KB

页数:9页

时间:2017-12-31

java实现文件的rsa和des加密_第1页
java实现文件的rsa和des加密_第2页
java实现文件的rsa和des加密_第3页
java实现文件的rsa和des加密_第4页
java实现文件的rsa和des加密_第5页
资源描述:

《java实现文件的rsa和des加密》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Java实现文件的RSA和DES加密算法一、基础知识根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。1.1对称加密算法对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:DES(DataEncryptionStandard):数据加密标准,速度较快,适用于加密大量数据的场合。

2、3DES(TripleDES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。AES(AdvancedEncryptionStandard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;1.2对称算法常见的非对称加密算法如下:RSA:由RSA公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;DSA(DigitalSignatureAlgorithm):数字签名算法,是一种标准的DSS(数字签名标准);ECC(EllipticCurvesCr

3、yptography):椭圆曲线密码编码学。1.3加密算法的选择前面简单介绍了各种对称和非对称加密算法,那我们在实际使用的过程中究竟该使用哪一种比较好呢?我们应该根据自己的使用特点来确定,由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。对称加密算法不能实现签名,因此签名只能非对称算法。由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。在实际的操作过程

4、中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。1.4JAVA中的实现根据以上阐述说明,对于要加密的数据量大时,一般采用DES对称加密算法.对于需要实现

5、签名的数据,则要采用RSA非对称加密算法.以下分别介绍这两种算法在JAVA的实现过程.一、java实现DES加密算法为了实现一对密钥对整个项目所有加密解密文件都适用的方法,采用先生成一对密钥.保存到xml文件中,以后获得私匙和公钥只需要从xml文件中取得就可以了./***把成生的一对密钥保存到DesKey.xml文件中*/publicstaticvoidsaveDesKey(){try{SecureRandomsr=newSecureRandom();//为我们选择的DES算法生成一个KeyGene

6、rator对象KeyGeneratorkg=KeyGenerator.getInstance("DES");kg.init(sr);FileOutputStreamfos=newFileOutputStream("C:/DesKey.xml");ObjectOutputStreamoos=newObjectOutputStream(fos);//生成密钥Keykey=kg.generateKey();oos.writeObject(key);oos.close();}catch(Exceptione

7、){e.printStackTrace();}}获取密钥方法如下:/***获得DES加密的密钥。在交易处理的过程中应该定时更*换密钥。需要JCE的支持,如果jdk版本低于1.4,则需要*安装jce-1_2_2才能正常使用。*@returnKey返回对称密钥*/publicstaticKeygetKey(){Keykp=null;try{StringfileName="conf/DesKey.xml";InputStreamis=DesUtil.class.getClassLoader().getRe

8、sourceAsStream(fileName);ObjectInputStreamoos=newObjectInputStream(is);kp=(Key)oos.readObject();oos.close();}catch(Exceptione){e.printStackTrace();}returnkp;}文件采用DES算法加密文件/** *文件file进行加密并保存目标文件destFile中 *@paramfile *           要加密的文件如c:

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

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

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