C114门户论坛百科APPEN| 举报 切换到宽版

亚星游戏官网

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索
查看: 3242|回复: 2

常见加密算法概况 [复制链接]

军衔等级:

亚星游戏官网-yaxin222  大校

注册:2007-4-24
发表于 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();

亚星游戏官网-yaxin222
SHA:

亚星游戏官网-yaxin222MessageDigest md = MessageDigest.getInstance("SHA");
亚星游戏官网-yaxin222
亚星游戏官网-yaxin222md.update(Constant.DATA.getBytes());
亚星游戏官网-yaxin222
亚星游戏官网-yaxin222
byte[] result = md.digest();



2)    DES
单密钥算法,是信息的发送方采用密钥A进行数据加密,信息的接收方采用同一个密钥A进行数据解密.
单密钥算法是一个对称算法.
缺点:由于采用同一个密钥进行加密解密,在多用户的情况下,密钥保管的安全性是一个问题.
代表:DES
Java实现:
首先,需要生成一个密钥,这边的做法,是把生成的密钥,保存到某个文件中.


亚星游戏官网-yaxin222KeyGenerator gen = KeyGenerator.getInstance("DES");
亚星游戏官网-yaxin222Key key
= gen.generateKey();
亚星游戏官网-yaxin222File keyFile
= new File(Constant.CRYPT_KEY_FILE);
亚星游戏官网-yaxin222ObjectOutputStream out
= new ObjectOutputStream(new FileOutputStream(keyFile));
亚星游戏官网-yaxin222out.writeObject(key);
亚星游戏官网-yaxin222out.close();
亚星游戏官网-yaxin222


在生成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-28 08:52 , Processed in 0.205703 second(s), 16 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部
XML 地图 | Sitemap 地图