package Ġcom . example . usb printer test Ċ Ċ import Ġjava . io . Unsupported EncodingException Ċ import Ġjava . security . Message Digest Ċ import Ġjava . security . NoSuch AlgorithmException Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġm uk un Ġon Ġ 2 0 1 8 / 3 / 2 9 . Ċ Ġ*/ Ċ Ċ object ĠMD 5 Util Ġ{ ĊĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* ĠMD 5 åĬł çłģ ĠçĶŁæĪĲ 3 2 ä½į md 5 çłģ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstring 2 MD 5 ( in Str : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmd 5 : ĠMessage Digest ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmd 5 Ġ= ĠMessage Digest . getInstance (" MD 5 ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠcharArray Ġ= Ġin Str . toCharArray () ĊĠĠĠĠĠĠĠ Ġval ĠbyteArray Ġ= ĠByteArray ( char Array . size ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin ĠcharArray . indices ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbyteArray [ i ] Ġ= ĠcharArray [ i ]. to Byte () ĊĠĠĠĠĠĠĠ Ġval Ġmd 5 Bytes Ġ= Ġmd 5 !!. digest ( byteArray ) ĊĠĠĠĠĠĠĠ Ġval Ġhex Value Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġmd 5 Bytes . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ` val ` Ġ= Ġmd 5 Bytes [ i ]. toInt () Ġand Ġ 0 xff ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(` val ` Ġ< Ġ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhex Value . append (" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhex Value . append ( Integer . to HexString (` val ` )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġhex Value . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* ĠMD 5 åĬł çłģ ĠçĶŁæĪĲ 1 6 ä½į md 5 çłģ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstring 2 MD 5 _ 1 6 ( str : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmessage Digest : ĠMessage Digest ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Digest Ġ= ĠMessage Digest . getInstance (" MD 5 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Digest !!. reset () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Digest . update ( str . toByteArray ( charset (" UTF - 8 "))) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNoSuch AlgorithmException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" NoSuch AlgorithmException Ġcaught !") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . exit (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupported EncodingException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠbyteArray Ġ= Ġmessage Digest !!. digest () ĊĊĠĠĠĠĠĠĠ Ġval Ġmd 5 Str Buff Ġ= ĠStringBuffer () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin ĠbyteArray . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Integer . to HexString ( 0 xFF Ġand ĠbyteArray [ i ]. toInt ()). length Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmd 5 Str Buff . append (" 0 "). append ( Integer . to HexString ( 0 xFF Ġand ĠbyteArray [ i ]. toInt ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmd 5 Str Buff . append ( Integer . to HexString ( 0 xFF Ġand ĠbyteArray [ i ]. toInt ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// 1 6 ä½į åĬłå¯Ĩ ï¼Į ä»İ ç¬¬ 9 ä½į åĪ° 2 5 ä½į ĊĠĠĠĠĠĠĠ Ġreturn Ġmd 5 Str Buff . substring ( 8 , Ġ 2 4 ). toString (). toUpperCase () ĊĠĠĠ Ġ} Ċ } Ċ