通信人家园
标题:
常见加密算法简介
[查看完整版帖子]
[打印本页]
时间:
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