通信人家园

标题: 常见加密算法简介  [查看完整版帖子] [打印本页]

时间:  2009-11-24 14:22
作者: alrn     标题: 常见加密算法简介

本文介绍常见的算法(MD5/SHA,DSA,RSA,DES)的应用场景,以及在java上的使用方法.
1)      MD5/SHA
MessageDigest是一个数据的数字指纹.即对一个任意长度的数据进行计算,产生一个唯一指纹号.
MessageDigest的特性:
A)     两个不同的数据,难以生成相同的指纹号
B)      对于指定的指纹号,难以逆向计算出原始数据
代表:MD5/SHA
Java实现:
MD5:
MessageDigest 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进行数据加密,信息的接收方采用同一个密钥A进行数据解密.
单密钥算法是一个对称算法.
缺点:由于采用同一个密钥进行加密解密,在多用户的情况下,密钥保管的安全性是一个问题.
代表:DES
Java实现:
首先,需要生成一个密钥,这边的做法,是把生成的密钥,保存到某个文件中.


KeyGenerator gen = KeyGenerator.getInstance("DES");
Key key
= gen.generateKey();
File keyFile
= new File(Constant.CRYPT_KEY_FILE);
ObjectOutputStream out
= new ObjectOutputStream(new FileOutputStream(keyFile));
out.writeObject(key);
out.close();


在生成key的时候,可以通过SecureRandom产生一个可信任的随机数源<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">
时间:  2009-11-25 14:22
作者: zb281394446

果然够简。。
时间:  2009-11-25 19:13
作者: shenhqi

还有很多




通信人家园 (https://www.txrjy.com/) Powered by C114