java鐨刴essagedigest鎬庝箞浣跨敤
MessageDigest鏄疛ava涓敤浜庤绠楀搱甯岀畻娉曠殑绫伙紝鍙互鐢ㄤ簬璁$畻MD5銆丼HA-1銆丼HA-256绛夊搱甯岀畻娉曠殑鎽樿銆備娇鐢∕essageDigest绫荤殑姝ラ濡備笅锛?/p>
- 浣跨敤getInstance鏂规硶鑾峰彇MessageDigest瀵硅薄锛屼紶鍏ユ寚瀹氱殑绠楁硶鍚嶇О銆備緥濡傦紝瑕佽绠桵D5鎽樿锛屽彲浠ヤ娇鐢ㄤ互涓嬩唬鐮侊細
MessageDigest md = MessageDigest.getInstance("MD5");
- 璋冪敤reset鏂规硶閲嶇疆MessageDigest瀵硅薄鐨勭姸鎬侊紝浠ヤ究涔嬪悗鍙互浼犲叆鏂扮殑鏁版嵁杩涜璁$畻銆備緥濡傦紝鍙互浣跨敤浠ヤ笅浠g爜閲嶇疆MessageDigest瀵硅薄鐨勭姸鎬侊細
md.reset();
- 浣跨敤update鏂规硶浼犲叆瑕佽绠楁憳瑕佺殑鏁版嵁銆傚彲浠ヤ竴娆′紶鍏ユ暣涓暟鎹紝涔熷彲浠ュ娆′紶鍏ラ儴鍒嗘暟鎹€備緥濡傦紝鍙互浣跨敤浠ヤ笅浠g爜浼犲叆瑕佽绠楁憳瑕佺殑瀛楃涓叉暟鎹細
md.update("Hello, world!".getBytes());
- 璋冪敤digest鏂规硶璁$畻鎽樿銆傝鏂规硶杩斿洖璁$畻寰楀埌鐨勬憳瑕佸瓧鑺傛暟缁勩€備緥濡傦紝鍙互浣跨敤浠ヤ笅浠g爜璁$畻鎽樿锛?/li>
byte[] digest = md.digest();
- 鍙€夛細瀵硅绠楀緱鍒扮殑鎽樿杩涜鏍煎紡鍖栥€備緥濡傦紝鍙互浣跨敤浠ヤ笅浠g爜灏嗘憳瑕佽浆鎹负16杩涘埗瀛楃涓诧細
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b));
}
String hexDigest = sb.toString();
瀹屾暣鐨勭ず渚嬩唬鐮佸涓嬶細
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MessageDigestExample {
public static void main(String[] args) {
try {
// 鑾峰彇MessageDigest瀵硅薄
MessageDigest md = MessageDigest.getInstance("MD5");
// 閲嶇疆MessageDigest瀵硅薄鐨勭姸鎬?/span>
md.reset();
// 浼犲叆瑕佽绠楁憳瑕佺殑鏁版嵁
md.update("Hello, world!".getBytes());
// 璁$畻鎽樿
byte[] digest = md.digest();
// 鏍煎紡鍖栨憳瑕佷负16杩涘埗瀛楃涓?/span>
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b));
}
String hexDigest = sb.toString();
System.out.println("鎽樿锛?quot; + hexDigest);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
}
杩愯浠ヤ笂浠g爜锛屽皢浼氳緭鍑鸿绠楀緱鍒扮殑MD5鎽樿銆?/p>
娉ㄦ剰锛氬湪浣跨敤MessageDigest瀵硅薄璁$畻鎽樿涔嬪悗锛屼笉鑳藉啀娆′娇鐢ㄨ瀵硅薄璁$畻鎽樿锛屽惁鍒欎細寰楀埌閿欒鐨勭粨鏋溿€傚鏋滈渶瑕佽绠楀涓暟鎹殑鎽樿锛岄渶瑕佷负姣忎釜鏁版嵁鍒涘缓涓€涓柊鐨凪essageDigest瀵硅薄銆?/p>