package Ġcom . n andy 0 0 7 . web . utils Ċ Ċ import Ġjava . security . Message Digest ĊĊ Ċ object ĠMD 5 Util Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġhe xD ig Its Ġ= ĠarrayOf (" 0 ", Ġ" 1 ", Ġ" 2 ", Ġ" 3 ", Ġ" 4 ", Ġ" 5 ", Ġ" 6 ", Ġ" 7 ", Ġ" 8 ", Ġ" 9 ", Ġ" a ", Ġ" b ", Ġ" c ", Ġ" d ", Ġ" e ", Ġ" f ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMD 5 åĬłå¯Ĩ ĊĠĠĠĠ Ġ* Ġ@ param Ġorigin Ġ åŃĹç¬¦ ĊĠĠĠĠ Ġ* Ġ@ param Ġcharset name Ġ ç¼ĸçłģ ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun ĠMD 5 Encode ( origin : ĠString , Ġcharset name : ĠString ? Ġ= Ġnull ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult String : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult String Ġ= Ġorigin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmd Ġ= ĠMessage Digest . getInstance (" MD 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġcharset name Ġ|| Ġ"" Ġ== Ġcharset name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult String Ġ= ĠbyteArray To HexString ( md . digest ( result String !!. toByteArray ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult String Ġ= ĠbyteArray To HexString ( md . digest ( result String !!. toByteArray ( charset ( charset name )))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult String ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun ĠbyteArray To HexString ( b : ĠByteArray ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Sb Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġb . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Sb . append ( byte To HexString ( b [ i ])) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult Sb . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbyte To HexString ( b : ĠByte ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġn Ġ= Ġb . toInt () ĊĠĠĠĠĠĠĠ Ġif Ġ( n Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn Ġ+= Ġ 2 5 6 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġd 1 Ġ= Ġn Ġ/ Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġval Ġd 2 Ġ= Ġn Ġ% Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġreturn Ġhe xD ig Its [ d 1 ] Ġ+ Ġhe xD ig Its [ d 2 ] ĊĠĠĠ Ġ} Ċ Ċ }