package Ġe bis us . mon k ag iga . k am ic omp app . core . domain Ċ Ċ import Ġokhttp 3 . internal . and Ċ import Ġjavax . crypto . Cipher Ċ import Ġjavax . crypto . spec . SecretKey Spec Ċ Ċ class ĠB low fish ( private Ġval Ġkey : ĠString ) Ġ{ ĊĊĠĠĠ Ġfun Ġdecrypt ( hash : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk d : ĠByteArray Ġ= Ġkey . toByteArray ( Charsets . UTF _ 8 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġks Ġ= ĠSecret KeySpec ( kd , Ġ" B low fish ") ĊĠĠĠĠĠĠĠ Ġval Ġcipher Ġ= ĠCipher . getInstance (" B low fish ") ĊĠĠĠĠĠĠĠ Ġcipher . init ( Cipher . DE CRYPT _ MODE , Ġks ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdecrypted Ġ= Ġcipher . do Final ( hex StringTo ByteArray ( hash )) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠString ( de crypted . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Char () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toCharArray ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencrypt ( text : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk d : ĠByteArray Ġ= Ġkey . toByteArray ( Charsets . UTF _ 8 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġks Ġ= ĠSecret KeySpec ( kd , Ġ" B low fish ") ĊĠĠĠĠĠĠĠ Ġval Ġcipher Ġ= ĠCipher . getInstance (" B low fish ") ĊĠĠĠĠĠĠĠ Ġcipher . init ( Cipher . ENCRYPT _ MODE , Ġks ) ĊĊĠĠĠĠĠĠĠ Ġval Ġencrypted Ġ= Ġcipher . do Final ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . toByteArray ( Charsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠbyteArray To HexString ( encrypted ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhex StringTo ByteArray ( hex : ĠString ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġhex . length ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠByteArray ( l Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġl ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata [ i Ġ/ Ġ 2 ] Ġ= Ġ(( Character . digit ( hex [ i ], Ġ 1 6 ) Ġshl Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ ĠCharacter . digit ( hex [ i Ġ+ Ġ 1 ], Ġ 1 6 )). to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠbyteArray To HexString ( byteArray : ĠByteArray ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhex Chars Ġ= ĠByteArray ( byteArray . size Ġ* Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin ĠbyteArray . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv : ĠInt Ġ= ĠbyteArray [ j ] Ġand Ġ 0 xFF ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhex Chars [ j Ġ* Ġ 2 ] Ġ= ĠHEX _ ARRAY [ v Ġ ush r Ġ 4 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhex Chars [ j Ġ* Ġ 2 Ġ+ Ġ 1 ] Ġ= ĠHEX _ ARRAY [ v Ġand Ġ 0 x 0 F ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠString ( hex Chars , ĠChar sets . UTF _ 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠHEX _ ARRAY : ĠByteArray Ġ= Ġ" 0 1 2 3 4 5 6 7 8 9 ABCDEF ". toByteArray ( Charsets . US _ ASCII ) ĊĠĠĠ Ġ} Ċ } Ċ