java中的加密算法

java中的加密算法

ID:26535151

大小:55.28 KB

页数:16页

时间:2018-11-27

java中的加密算法_第1页
java中的加密算法_第2页
java中的加密算法_第3页
java中的加密算法_第4页
java中的加密算法_第5页
资源描述:

《java中的加密算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、常见加密算法简介 本文介绍常见的算法(MD5/SHA,DSA,RSA,DES)的应用场景,以及在java上的使用方法.1)     MD5/SHA(MD5常用于加密用户名密码,当用户验证时。SHA加密,与MD5相似的用法,只是两者的算法不同。)MessageDigest是一个数据的数字指纹.即对一个任意长度的数据进行计算,产生一个唯一指纹号.MessageDigest的特性:A)    两个不同的数据,难以生成相同的指纹号B)     对于指定的指纹号,难以逆向计算出原始数据代表:MD5/SHAJava实现:MD5:Mess

2、ageDigest md = MessageDigest.getInstance("MD5");md.update(Constant.DATA.getBytes());byte[] result = md.digest();SHA:MessageDigest md = MessageDigest.getInstance("SHA");md.update(Constant.DATA.getBytes());byte[] result = md.digest();2)   DES单密钥算法,是信息的发送方采用密钥A进行数据加密,

3、信息的接收方采用同一个密钥A进行数据解密.单密钥算法是一个对称算法.缺点:由于采用同一个密钥进行加密解密,在多用户的情况下,密钥保管的安全性是一个问题.代表:DESJava实现:首先,需要生成一个密钥,这边的做法,是把生成的密钥,保存到某个文件中.KeyGenerator gen = KeyGenerator.getInstance("DES");Key key = gen.generateKey();File keyFile = new File(Constant.CRYPT_KEY_FILE);ObjectOutputS

4、tream out = new ObjectOutputStream(new FileOutputStream(keyFile));out.writeObject(key);out.close();在生成key的时候,可以通过SecureRandom产生一个可信任的随机数源KeyGenerator gen = KeyGenerator.getInstance("DES");gen.init(new SecureRandom(seed));Key key = gen.generateKey(); 加密:Key key = ge

5、n.getKey(Constant.CRYPT_KEY_FILE);//从文件中得到密钥Cipher cipher = Cipher.getInstance("DES");cipher.init(Cipher.ENCRYPT_MODE, key); //指定是加密模式cipher.update(Constant.DATA.getBytes());byte[] result = cipher.doFinal();解密:由于DES是一个对称算法,所以解密代码跟加密代码几乎一致key = gen.getKey(Constant.C

6、RYPT_KEY_FILE);cipher.init(Cipher.DECRYPT_MODE, key); //指定是解密模式cipher.update(result);byte[] data = cipher.doFinal();由于采用了同一个密钥(key),所以两端代码中Constant.DATA.getBytes()和data的值是一致的.3)   非对称加密算法DSA数字签名的代表4)   RSA公钥密码体制:为了解决单密钥保管安全性的问题,提供了公钥密码体制的概念.在公钥体制中,加密密钥不同于解密密钥,加密密钥公

7、之于众,谁都可以使用;解密密钥只有解密人自己知道。它们分别称为公开密钥(Publickey)和秘密密钥(Privatekey)。代表:RSAJava实现:同样,需要生成公钥和私钥,并且保存到相应的文件中KeyPairGenerator gen = KeyPairGenerator.getInstance(“RSA”);//以指定的长度初始化KeyPairGenerator对象,如果没有初始化系统以1024长度默认设置//参数:keysize 算法位长.其范围必须在 512 到 1024 之间,且必须为 64 的倍数gen.i

8、nitialize(1024);KeyPair pair = gen.generateKeyPair();File pubkeyFile = new File(Constant.PUB_KEY_FILE);File prikeyFile = new File(Constant.PRI_KE

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

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

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