package Ġpt . uc . cm . day list udent . utils Ċ Ċ import Ġandroid . util . Base 6 4 Ċ import Ġjava . security . Message Digest Ċ import Ġjava . util .* Ċ import Ġjavax . crypto . SecretKey Ċ import Ġjavax . crypto . spec . SecretKey Spec Ċ Ċ class ĠEncryption Utils Ġprivate Ġconstructor () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġencryption Key : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġobject ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠINSTANCE Ġ= ĠEncryption Utils () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠEncryption Utils Ġby Ġlazy Ġ{ ĠH older . INSTANCE Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġget Sec re te Key ( secret Key : ĠString ): ĠSecret Key Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmd Ġ= ĠMessage Digest . getInstance (" SHA - 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġdigest Of Password Ġ= Ġmd . digest ( secret Key . toByteArray ( charset (" UTF - 8 "))) ĊĠĠĠĠĠĠĠ Ġval Ġkey Bytes Ġ= ĠArrays . copyOf ( digest Of Password , Ġ 2 4 ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSecret KeySpec ( key Bytes , Ġ" AES ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencrypt Msg (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBase 6 4 . encode ToString ( encryption Key !!. toByteArray (), ĠBase 6 4 . DEFAULT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencryption String ( encryption Key : ĠString ): ĠEncryption Utils ? Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . encryption Key Ġ= Ġencryption Key ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget De cryption String ( encrypted Text : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠString ( Base 6 4 . decode ( encrypted Text . toByteArray (), ĠBase 6 4 . DEFAULT )) ĊĠĠĠ Ġ} Ċ } Ċ