package Ġcom . nb . nb http . util Ċ Ċ import Ġjava . util .* Ċ Ċ /** ĠCreated Ġby ĠN ie Bin Ġon Ġ 2 0 1 8 / 7 / 8 Ċ Ġ* ĠGitHub : Ġhttps :// github . com / nb 3 1 2 Ċ Ġ* ĠEmail : Ġni eb in 3 1 2 @ gmail . com Ċ Ġ*/ Ċ Ċ object ĠSign Util Ġ{ ĊĠĠĠ Ġval ĠUTF _ 8 Ġ= Ġ" UTF - 8 " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® è¯·æ±Ĥ url åĲİçļĦ åıĤæķ° è¿Ľè¡Į çŃ¾åĲį . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param N Ġrequest Url Ġè¯·æ±Ĥ url ĊĠĠĠĠ Ġ* Ġ@ param N Ġtime Stamp Ġ Ġ æĹ¶éĹ´ æĪ ³ ĊĠĠĠĠ Ġ* Ġ@ return Ġ çŃ¾åĲį ç»ĵæŀľ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsign ( request Url : ĠString , Ġtime Stamp : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Url Ġ= Ġrequest Url ĊĠĠĠĠĠĠĠ Ġrequest Url Ġ= ĠString Util . get URL Decode ( request Url , ĠUTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! request Url . contains (" ? ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsign ( TreeMap (), Ġtime Stamp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequest Url Ġ= Ġrequest Url . substring ( request Url . indexOf (" ?") Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġquery Key Values Ġ= Ġrequest Url . split ("& ". to Regex ()). drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ// TreeMap é»ĺè®¤ åįĩ åºı ĊĠĠĠĠĠĠĠ Ġval Ġrequest Parameter Ġ= ĠTreeMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( query KeyValue Ġin Ġquery Key Values ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġquery KeyValue . substring ( 0 , Ġquery KeyValue . indexOf (" =" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġquery KeyValue . substring ( query KeyValue . indexOf (" =") Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Parameter [ key ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsign ( request Parameter , Ġtime Stamp ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® è¯·æ±Ĥ TreeMap è¿Ľè¡Į çŃ¾åĲį . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param N Ġrequest Parameter Ġ æİĴ è¿ĩ åºı çļĦ TreeMap ĊĠĠĠĠ Ġ* Ġ@ param N Ġtime Stamp ĠĠĠĠĠĠĠ Ġ æĹ¶éĹ´ æĪ ³ ĊĠĠĠĠ Ġ* Ġ@ return Ġ çŃ¾åĲį ç»ĵæŀľ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsign ( request Parameter : ĠTreeMap < String , ĠString >, Ġtime Stamp : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsign Result : ĠString ĊĠĠĠĠĠĠĠ Ġval Ġsign StringBuilder Ġ= ĠStringBuilder ("") ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= Ġrequest Parameter . entries ĊĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġset ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsign StringBuilder . append ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsign StringBuilder . append ( time Stamp ) ĊĠĠĠĠĠĠĠ Ġsign Result Ġ= ĠString Util . get MD 5 Bit 1 6 ( sign StringBuilder . toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġsign Result ĊĠĠĠ Ġ} Ċ Ċ }