俊星的BLOG
導(dǎo)航
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
<
2009年6月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
統(tǒng)計
隨筆 - 50
文章 - 0
評論 - 6
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
代碼庫(7)
(rss)
隨筆檔案
2010年11月 (3)
2010年10月 (12)
2009年6月 (5)
2009年5月 (22)
2009年4月 (8)
最新隨筆
1.?實(shí)現(xiàn)變更統(tǒng)計
2.?切換IE8中碰到的問題
3.?發(fā)布FWMS
4.?ActiveMQ初探
5.?CAS初步配置
搜索
最新評論
1.?re: JAVA圖像縮放處理[未登錄]
不錯的方法
--test
2.?re: freetts初探
學(xué)習(xí)了! 就是不清楚為啥在eclipse下跑不起來...
--apiao
3.?re: freetts初探
System property "mbrola.base" is undefined. Will not use MBROLA voices.
這個問題怎么解決啊?
--瓏兒
4.?re: ActiveMQ初探
測試通過。多謝
--71569973
5.?登錄網(wǎng)站
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--ahome
閱讀排行榜
1.?ftp的port和pasv模式(轉(zhuǎn))(8032)
2.?JAVA圖像縮放處理(4181)
3.?Nutz初步試用(4109)
4.?Window下FTP命令使用(3519)
5.?freetts初探(3430)
6.?ActiveMQ初探(2906)
7.?MYSQL Access denied 問題的解決(2345)
8.?HTTP Client及HTTPS初探(1990)
9.?JAVA單向加密(MD5,SHA,MAC)(1266)
10.?CAS認(rèn)證初探(1155)
評論排行榜
1.?freetts初探(2)
2.?HTTP Client及HTTPS初探(2)
3.?ActiveMQ初探(1)
4.?JAVA圖像縮放處理(1)
5.?我的DWR之DefaultContainer(0)
JAVA單向加密(MD5,SHA,MAC)
具體代碼如下:
import
java.security.MessageDigest;
import
javax.crypto.KeyGenerator;
import
javax.crypto.Mac;
import
javax.crypto.SecretKey;
import
javax.crypto.spec.SecretKeySpec;
import
sun.misc.BASE64Decoder;
import
sun.misc.BASE64Encoder;
/** */
/**
* 加密(主要有:MD4,SHA,MAC)
*
*
@author
kinkding
* @history 2009-6-3
*/
public
class
MyEncrypt
{
/** */
/**
MD5 加密
*/
public
static
byte
[] encryptMD5(
byte
[] data)
throws
Exception
{
MessageDigest md5
=
MessageDigest.getInstance(
"
MD5
"
);
md5.update(data);
return
md5.digest();
}
/** */
/**
SHA 加密
*/
public
static
byte
[] encryptSHA(
byte
[] data)
throws
Exception
{
MessageDigest sha
=
MessageDigest.getInstance(
"
SHA
"
);
sha.update(data);
return
sha.digest();
}
/** */
/**
取得HMAC密鑰
*/
public
static
String getMacKey()
throws
Exception
{
KeyGenerator keyGenerator
=
KeyGenerator.getInstance(
"
HmacMD5
"
);
SecretKey secretKey
=
keyGenerator.generateKey();
return
new
BASE64Encoder().encode(secretKey.getEncoded());
}
/** */
/**
執(zhí)行加密
*/
public
static
byte
[] encryptHMAC(
byte
[] data, String key)
throws
Exception
{
byte
[] bkey
=
new
BASE64Decoder().decodeBuffer(key);
SecretKey secretKey
=
new
SecretKeySpec(bkey,
"
HmacMD5
"
);
Mac mac
=
Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
return
mac.doFinal(data);
}
private
static
String toHex(
byte
[] buffer)
{
StringBuffer sb
=
new
StringBuffer(buffer.length
*
3
);
for
(
int
i
=
0
; i
<
buffer.length; i
++
)
{
sb.append(Character.forDigit((buffer[i]
&
0xf0
)
>>
4
,
16
));
sb.append(Character.forDigit(buffer[i]
&
0x0f
,
16
));
}
return
sb.toString();
}
public
static
void
main(String[] args)
{
String msg
=
"
生活真好^_^
"
;
byte
[] data
=
msg.getBytes();
try
{
System.out.println(
"
msg:
"
+
msg);
System.out.println(
"
md5:
"
+
toHex(encryptMD5(data)));
System.out.println(
"
sha:
"
+
toHex(encryptSHA(data)));
String key
=
getMacKey();
System.out.println(
"
mac key:
"
+
key);
System.out.println(
"
mac:
"
+
toHex(encryptHMAC(data, key)));
}
catch
(Exception e)
{
e.printStackTrace();
}
}
}
運(yùn)行效果如下:
msg:生活真好^_^
md5:e0649dfaef57789734e920c7ecb9c4ea
sha:a4bd855836de26b2323778b797629fed4416f12f
mac key:zBPe28oho2H84+Mg8mF4abpd0MQvdjgqgFdX4hmUQQbOGnX1aFq/oQnogsHVIczgx1AZ1s2/ncPz
tBQIGLZUnw
==
mac:87f4140161ad43797059e85dd9962897
posted on 2009-06-03 23:20
俊星
閱讀(1266)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Powered by:
BlogJava
Copyright © 俊星
主站蜘蛛池模板:
北海市
|
无为县
|
洛扎县
|
绥滨县
|
大安市
|
昭通市
|
正阳县
|
永登县
|
甘肃省
|
广河县
|
安泽县
|
北川
|
务川
|
五河县
|
清水河县
|
绥德县
|
赫章县
|
卢氏县
|
嘉荫县
|
西城区
|
清远市
|
永康市
|
榆林市
|
介休市
|
龙川县
|
榆树市
|
平武县
|
承德县
|
南阳市
|
罗定市
|
高尔夫
|
句容市
|
博爱县
|
梁平县
|
都安
|
麦盖提县
|
囊谦县
|
平凉市
|
贡觉县
|
丹寨县
|
武宁县
|