package Ġcom . so od k art ik . mv pp attern . utilities Ċ Ċ import Ġjava . security . Message Digest Ċ import Ġjava . security . NoSuch AlgorithmException Ċ import Ġkotlin . experimental . and Ċ import Ġkotlin . text . Charsets . ISO _ 8 8 5 9 _ 1 Ċ Ċ object ĠString Encryption Utility Ġ{ ĊĠĠĠ Ġ@ Throws ( NoSuch AlgorithmException :: class ) ĊĠĠĠ Ġfun ĠgetData ( text : ĠString ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalgorithm Type Ġ= Ġ" SHA - 1 " ĊĠĠĠĠĠĠĠ Ġval Ġmd : ĠMessage Digest Ġ= ĠMessage Digest . getInstance ( algorithm Type ) ĊĠĠĠĠĠĠĠ Ġmd . update ( text ?. toByteArray ( ISO _ 8 8 5 9 _ 1 ) !! , Ġ 0 , Ġtext . length ) ĊĠĠĠĠĠĠĠ Ġval Ġsha 1 hash : ĠByteArray Ġ= Ġmd . digest () ĊĠĠĠĠĠĠĠ Ġreturn ĠconvertTo Hex ( sha 1 hash ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠconvertTo Hex ( data : ĠByteArray ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( b Ġin Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġhalf Byte : ĠInt Ġ= Ġ( b . toInt () Ġ ush r Ġ 4 ) Ġand Ġ 0 x 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtwo Hal fs Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ( if Ġ( half Byte Ġin Ġ 0 .. 9 ) Ġ(' 0 '. toInt () Ġ+ Ġhalf Byte ). to Char () Ġelse Ġ(' a '. toInt () Ġ+ Ġ( half Byte Ġ- Ġ 1 0 )). to Char ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhalf Byte Ġ= Ġ( b Ġand Ġ 0 x 0 F ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( two Hal fs ++ Ġ< Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuf . toString () ĊĠĠĠ Ġ} Ċ }