通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索
查看: 3182|回复: 2
打印

常见加密算法简介 [复制链接]

军衔等级:

  大校

注册:2007-4-24
跳转到指定楼层
1#
发表于 2009-11-24 14:22:21 |只看该作者 |倒序浏览
本文介绍常见的算法(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'">

举报本楼

本帖有 2 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-16 01:32 , Processed in 0.178344 second(s), 16 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部