package Ġcom . github . lee . core . service . impl Ċ Ċ import Ġcom . github . lee . core . service . Base Service Ċ import Ġorg . apache . shiro . crypto . hash . Md 5 Hash Ċ import Ġorg . apache . shiro . util . Byte Source Ċ import Ġjava . util .* ĊĊ Ċ fun Ġrandom UUID (): ĠString Ġ= ĊĠĠĠĠĠĠĠ ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toUpperCase ( Locale . CH INE SE ) Ċ Ċ /** çĶŁæĪĲ 3 2 ä½į éļıæľº å¤§ åĨĻ åŃĹç¬¦ä¸² */ Ċ fun Ġrandom 3 2 UUID (): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġrandom UUID (). replace ("- ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toUpperCase ( Locale . CH INE SE ) Ċ Ċ /** å°Ĩ éļıæľº åŃĹç¬¦ä¸² è½¬æį¢ æĪĲ max ä¸Ģä¸ĭ çļĦ æķ°åŃĹ */ Ċ fun ĠgetString Sum ( str : ĠString , Ġmax : ĠInt Ġ= Ġ 0 ): ĠInt Ġ{ ĊĠĠĠ Ġvar Ġnum Ġ= Ġ 0 ĊĠĠĠ Ġval Ġbytes Ġ= Ġstr . toByteArray () ĊĠĠĠ Ġfor Ġ( b Ġin Ġbytes ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnum Ġ= Ġnum . plus ( b ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( max Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnum Ġ% = Ġmax ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnum Ċ } Ċ Ċ /** Ċ Ġ* Ġ ä¸ļåĬ¡ å±Ĥ String ä¸»éĶ® çļĦ åŁºç¡Ģ å®ŀçİ° Ċ Ġ* Ċ Ġ*/ Ċ interface ĠBase Service String Impl < TYPE , ĠEX AMPLE , ĠMAP PER > Ġ: ĠBase Service < String , ĠTYPE , ĠEX AMPLE , ĠMAP PER > Ġ{ ĊĠĠĠ Ġ// ĠĠĠ Ġprotected Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( this . java Class ) ĊĠĠĠ Ġ/** çĶŁæĪĲ å¯Ĩçłģ */ ĊĠĠĠ Ġfun Ġgenerate Password ( username : ĠString , Ġpassword : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsalt : ĠByte Source ? Ġ= Ġnull ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġu Ġ= ĠMd 5 Hash ( username , Ġsalt Ġ?: Ġ"", ĠgetString Sum ( username )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Hex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toUpperCase ( Locale . CH INE SE ) ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠMd 5 Hash ( password , Ġsalt Ġ?: Ġ"", ĠgetString Sum ( password )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Hex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toUpperCase ( Locale . CH INE SE ) ĊĠĠĠĠĠĠĠ Ġval Ġup Ġ= Ġu Ġ+ Ġp ĊĠĠĠĠĠĠĠ Ġreturn ĠMd 5 Hash ( up , Ġsalt Ġ?: Ġ"", ĠgetString Sum ( up )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Hex (). toUpperCase () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** çĶŁæĪĲ å¯Ĩçłģ */ ĊĠĠĠ Ġfun Ġgenerate Password ( username : ĠString , Ġpassword : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsalt : ĠString ? Ġ= Ġnull ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgenerate Password ( username , Ġpassword , ĠByte Source . Util . bytes ( salt )) ĊĠĠĠ Ġ} Ċ } Ċ