import Ġjava . security . Message Digest č Ċ import Ġjava . util .* čĊč Ċ /* čĊ Ġ* Ġ@ created Ġ 3 0 . Ġ 0 1 . Ġ 2 0 2 2 čĊ Ġ* Ġ@ project ĠIntelliJ ĠIDEA čĊ Ġ* Ġ@ author ĠD orm age č Ċ */ čĊčĊč Ċ private Ġval Ġdigits Ġ= Ġchar ArrayOf ( čĊĠĠĠ Ġ' 0 ', Ġ' 1 ', Ġ' 2 ', Ġ' 3 ', Ġ' 4 ', Ġ' 5 ', Ġ' 6 ', Ġ' 7 ', Ġ' 8 ', Ġ' 9 ', Ġ' A ', Ġ' B ', Ġ' C ', Ġ' D ', čĊĠĠĠ Ġ' E ', Ġ' F ' č Ċ ) čĊč Ċ val ĠByteArray . as Hex čĊĠĠĠ Ġget () Ġ: String Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġsize čĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= ĠChar Array ( l Ġshl Ġ 1 ) čĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġvar Ġj Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġl ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġout [ j ++] Ġ= Ġdigits [ 0 xF 0 Ġand Ġthis [ i ]. toInt () Ġ ush r Ġ 4 ] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġout [ j ++] Ġ= Ġdigits [ 0 x 0 F Ġand Ġthis [ i ]. toInt ()] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġout . join ToString ("") čĊĠĠĠ Ġ} čĊč Ċ /** ĠReturns ĠHEX Ġencoded Ġidentifier Ġas Ġa Ġbit Ġset . Ġ*/ č Ċ val ĠString . as Bit Set : ĠBit Set Ġget () Ġ= ĠBit Set . valueOf ( to BigInteger ( 1 6 ). toByteArray (). reversed Array ()) čĊč Ċ /** ĠDigest s Ġ[ data ] Ġusing ĠSHA - 2 5 6 Ġhashing Ġalgorithm . Ġ*/ č Ċ fun Ġsha 2 5 6 ( data : ĠByteArray ): ĠByteArray Ġ{ čĊĠĠĠ Ġreturn ĠMessage Digest . getInstance (" SHA - 2 5 6 "). let Ġ{ čĊĠĠĠĠĠĠĠ Ġit . update ( data ) čĊĠĠĠĠĠĠĠ Ġit . digest () čĊĠĠĠ Ġ} č Ċ } čĊč Ċ /** ĠDigest s Ġ[ data ] Ġusing ĠSHA - 2 5 6 Ġhashing Ġalgorithm . Ġ*/ č Ċ fun Ġsha 2 5 6 ( data : ĠString ) Ġ= Ġsha 2 5 6 ( data . encode To ByteArray ()) čĊ