package Ġk vm . core Ċ Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . InputStream Ċ import Ġjavax . crypto . Cipher Ċ import Ġjavax . crypto . spec . Iv Parameter Spec Ċ import Ġjavax . crypto . spec . SecretKey Spec Ċ Ċ class ĠCrypto Utils Ġ{ ĊĠĠĠ Ġfun Ġdecrypt File () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk s Ġ= ĠSecret KeySpec ( Constants . key Bytes , Ġ" AES ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġiv Ġ= ĠI v Parameter Spec ( Constants . iv Bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcipher : ĠCipher Ġ= ĠCipher . getInstance (" AES / CBC / PKCS 5 Padding ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcipher . init ( Cipher . DE CRYPT _ MODE , Ġsk s , Ġiv ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġread Ġfile Ġto Ġbyte [] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ` is `: ĠInputStream Ġ= ĠFileInputStream (" test . enc ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġba os Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġb : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(` is `. read (). also Ġ{ Ġb Ġ= Ġit Ġ} Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġba os . write ( b ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Bytes : ĠByteArray Ġ= Ġba os . toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecrypted : ĠByteArray Ġ= Ġcipher . do Final ( file Bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( String ( de crypted )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }