锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲三区在线,欧美一区二区三区精品电影,精品一区电影http://www.aygfsteel.com/haogj/category/12758.htmlzh-cnFri, 02 Mar 2007 02:41:46 GMTFri, 02 Mar 2007 02:41:46 GMT60浣跨敤 Java 鐢熸垚 MD5 緙栫爜http://www.aygfsteel.com/haogj/archive/2006/07/04/56604.htmlhaogjhaogjTue, 04 Jul 2006 14:25:00 GMThttp://www.aygfsteel.com/haogj/archive/2006/07/04/56604.htmlhttp://www.aygfsteel.com/haogj/comments/56604.htmlhttp://www.aygfsteel.com/haogj/archive/2006/07/04/56604.html#Feedback0http://www.aygfsteel.com/haogj/comments/commentRss/56604.htmlhttp://www.aygfsteel.com/haogj/services/trackbacks/56604.html聽聽聽 MD5鍗矼essage-Digest Algorithm 5錛堜俊鎭?鎽樿綆楁硶5錛夛紝鏄竴縐嶇敤浜庝駭鐢熸暟瀛楃鍚嶇殑鍗曢」鏁e垪綆楁硶錛屽湪1991騫寸敱MIT Laboratory for Computer Science錛圛T璁$畻鏈虹瀛﹀疄楠屽錛夊拰RSA Data Security Inc錛圧SA鏁版嵁瀹夊叏鍏徃錛夌殑Ronald L. Rivest鏁欐巿寮鍙戝嚭鏉ワ紝緇忕敱MD2銆丮D3鍜孧D4鍙戝睍鑰屾潵銆侻D5綆楁硶鐨勪嬌鐢ㄤ笉闇瑕佹敮浠樹換浣曠増鏉冭垂鐢ㄣ傚畠鐨勪綔鐢ㄦ槸璁╁ぇ瀹歸噺淇℃伅鍦ㄧ敤鏁板瓧絳懼悕杞歡絳劇浜哄瘑鍖欏墠琚?鍘嬬緝"鎴愪竴縐嶄繚瀵嗙殑鏍煎紡錛堝皢涓涓換鎰忛暱搴︾殑鈥滃瓧鑺備覆鈥濋氳繃涓涓笉鍙嗙殑瀛楃涓插彉鎹㈢畻娉曞彉鎹㈡垚涓涓?28bit鐨勫ぇ鏁存暟錛屾崲鍙ヨ瘽璇村氨鏄紝鍗充嬌浣犵湅鍒版簮紼嬪簭鍜岀畻娉曟弿榪幫紝涔熸棤娉曞皢涓涓狹D5鐨勫煎彉鎹㈠洖鍘熷鐨勫瓧絎︿覆錛屼粠鏁板鍘熺悊涓婅錛屾槸鍥犱負鍘熷鐨勫瓧絎︿覆鏈夋棤絀峰涓紝榪欐湁鐐硅薄涓嶅瓨鍦ㄥ弽鍑芥暟鐨勬暟瀛﹀嚱鏁般傦級
聽聽聽
聽聽 鍦?Java 涓紝java.security.MessageDigest 涓凡緇忓畾涔変簡 MD5 鐨勮綆楋紝鎵浠ユ垜浠彧闇瑕佺畝鍗曞湴璋冪敤鍗沖彲寰楀埌 MD5 鐨?28 浣嶆暣鏁般傜劧鍚庡皢姝?128 浣嶈 16 涓瓧鑺傝漿鎹㈡垚 16 榪涘埗琛ㄧず鍗沖彲銆?br />
聽聽聽 浠g爜濡備笅錛?br />

package com.tsinghua;

/**
聽* MD5鐨勭畻娉曞湪RFC1321 涓畾涔?br />聽* 鍦≧FC 1321涓紝緇欏嚭浜員est suite鐢ㄦ潵媯楠屼綘鐨勫疄鐜版槸鍚︽紜細
聽* MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
聽* MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
聽* MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
聽* MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
聽* MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
聽*
聽* @author haogj
聽*
聽* 浼犲叆鍙傛暟錛氫竴涓瓧鑺傛暟緇?br />聽* 浼犲嚭鍙傛暟錛氬瓧鑺傛暟緇勭殑 MD5 緇撴灉瀛楃涓?br />聽*/
public class MD5 {
聽public static String getMD5(byte[] source) {
聽聽String s = null;
聽聽char hexDigits[] = { 聽聽聽聽聽聽// 鐢ㄦ潵灝嗗瓧鑺傝漿鎹㈡垚 16 榪涘埗琛ㄧず鐨勫瓧絎?br />聽聽聽聽 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',聽 'e', 'f'};
聽聽 try
聽聽 {
聽聽聽 java.security.MessageDigest md = java.security.MessageDigest.getInstance( "MD5" );
聽聽聽 md.update( source );
聽聽聽 byte tmp[] = md.digest();聽聽聽聽聽聽聽聽聽聽// MD5 鐨勮綆楃粨鏋滄槸涓涓?128 浣嶇殑闀挎暣鏁幫紝
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// 鐢ㄥ瓧鑺傝〃紺哄氨鏄?16 涓瓧鑺?br />聽聽聽 char str[] = new char[16 * 2];聽聽聽// 姣忎釜瀛楄妭鐢?16 榪涘埗琛ㄧず鐨勮瘽錛屼嬌鐢ㄤ袱涓瓧絎︼紝
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// 鎵浠ヨ〃紺烘垚 16 榪涘埗闇瑕?32 涓瓧絎?br />聽聽聽 int k = 0;聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// 琛ㄧず杞崲緇撴灉涓搴旂殑瀛楃浣嶇疆
聽聽聽 for (int i = 0; i < 16; i++) {聽聽聽聽聽聽聽聽聽聽// 浠庣涓涓瓧鑺傚紑濮嬶紝瀵?MD5 鐨勬瘡涓涓瓧鑺?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// 杞崲鎴?16 榪涘埗瀛楃鐨勮漿鎹?br />聽聽聽聽 byte byte0 = tmp[i];聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// 鍙栫 i 涓瓧鑺?br />聽聽聽聽 str[k++] = hexDigits[byte0 >>> 4 & 0xf]; 聽// 鍙栧瓧鑺備腑楂?4 浣嶇殑鏁板瓧杞崲,聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// >>> 涓洪昏緫鍙崇Щ錛屽皢絎﹀彿浣嶄竴璧峰彸縐?br />聽聽聽聽 str[k++] = hexDigits[byte0 & 0xf];聽聽聽聽聽聽聽聽聽聽聽聽// 鍙栧瓧鑺備腑浣?4 浣嶇殑鏁板瓧杞崲
聽聽聽 }
聽聽聽 s = new String(str);聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽// 鎹㈠悗鐨勭粨鏋滆漿鎹負瀛楃涓?/p>

聽聽 }catch( Exception e )
聽聽 {
聽聽聽 e.printStackTrace();
聽聽 }
聽聽 return s;
聽}
}


聽聽聽 嫻嬭瘯浠g爜濡備笅錛?br />

import com.tsinghua.*;

public class TestMD5
{
聽public static void main( String xu[] )
聽{聽// 璁$畻 "a" 鐨?MD5 浠g爜錛屽簲璇ヤ負錛?cc175b9c0f1b6a831c399e269772661
聽 System.out.println( MD5.getMD5("a".getBytes()) );
聽}
}




haogj 2006-07-04 22:25 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 临沧市| 资阳市| 神农架林区| 广水市| 海安县| 三门峡市| 新建县| 施甸县| 江川县| 尖扎县| 潮州市| 商城县| 嘉荫县| 健康| 陆河县| 潍坊市| 黄龙县| 湘乡市| 宣武区| 永定县| 兴仁县| 苏尼特右旗| 克东县| 罗定市| 白河县| 湟源县| 沁水县| 洮南市| 芜湖县| 铜鼓县| 谷城县| 白玉县| 类乌齐县| 旬阳县| 绵阳市| 新干县| 鹿邑县| 马鞍山市| 教育| 措美县| 辉南县|