package Ġdev . ent ao . kan . base . ex Ċ Ċ import Ġjavax . crypto . Cipher Ċ import Ġjavax . crypto . spec . SecretKey Spec Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġent ao yang @ 1 6 3 . com Ġon Ġ 1 6 / 4 / 2 7 . Ċ Ġ* Ġhttps :// my . os china . net / J acker / blog / 8 6 3 8 3 Ċ Ġ* Ġcipher : Ġ ĠAES / E CB / No Padding çŃī Ċ Ġ* Ċ Ġ* Ġ ç®Ĺæ³ķ / æ¨¡å¼ı / å¡« åħħ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 åŃĹèĬĤ åĬłå¯Ĩ åĲİ æķ°æį® éķ¿åº¦ ĠĠĠĠĠĠĠ Ġä¸į æ»¡ 1 6 åŃĹèĬĤ åĬłå¯Ĩ åĲİ éķ¿åº¦ Ċ Ġ* ĠAES / CBC / No Padding ĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġä¸į æĶ¯æĮģ Ċ Ġ* ĠAES / CBC / PKCS 5 Padding ĠĠĠĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / CBC / ISO 1 0 1 2 6 Padding ĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / CF B / No Padding ĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ åİŁå§ĭ æķ°æį® éķ¿åº¦ Ċ Ġ* ĠAES / CF B / PKCS 5 Padding ĠĠĠĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / CF B / ISO 1 0 1 2 6 Padding ĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / E CB / No Padding ĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġä¸į æĶ¯æĮģ Ċ Ġ* ĠAES / E CB / PKCS 5 Padding ĠĠĠĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / E CB / ISO 1 0 1 2 6 Padding ĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / OF B / No Padding ĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ åİŁå§ĭ æķ°æį® éķ¿åº¦ Ċ Ġ* ĠAES / OF B / PKCS 5 Padding ĠĠĠĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / OF B / ISO 1 0 1 2 6 Padding ĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / PC BC / No Padding ĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġä¸į æĶ¯æĮģ Ċ Ġ* ĠAES / PC BC / PKCS 5 Padding ĠĠĠĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ* ĠAES / PC BC / ISO 1 0 1 2 6 Padding ĠĠĠĠĠĠ 3 2 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ċ Ġ*/ Ċ class ĠAES ( val Ġcipher : ĠString ) Ġ{ ĊĊĠĠĠ Ġfun Ġencode ( key : ĠByteArray , Ġdata : ĠByteArray ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdo AES ( Cipher . ENCRYPT _ MODE , Ġkey , Ġdata ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġdecode ( key : ĠByteArray , Ġdata : ĠByteArray ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdo AES ( Cipher . DE CRYPT _ MODE , Ġkey , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo AES ( mode : ĠInt , Ġkey : ĠByteArray , Ġdata : ĠByteArray ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcipher Ġ= ĠCipher . getInstance ( cipher ) ĊĠĠĠĠĠĠĠ Ġcipher . init ( mode , ĠSecret KeySpec ( key , Ġ" AES ")) ĊĠĠĠĠĠĠĠ Ġreturn Ġcipher . do Final ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠE CB Ġ= ĠAES (" AES / E CB / No Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠE CB _ PKCS 5 Ġ= ĠAES (" AES / E CB / PKCS 5 Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠE CB _ ISO 1 0 1 2 6 Ġ= ĠAES (" AES / E CB / ISO 1 0 1 2 6 Padding ") ĊĊĠĠĠĠĠĠĠ Ġval ĠCBC Ġ= ĠAES (" AES / CBC / No Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠCBC _ PKCS 5 Ġ= ĠAES (" AES / CBC / PKCS 5 Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠCBC _ ISO 1 0 1 2 6 Ġ= ĠAES (" AES / CBC / ISO 1 0 1 2 6 Padding ") ĊĊĠĠĠĠĠĠĠ Ġval ĠC FB Ġ= ĠAES (" AES / CF B / No Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠC FB _ PKCS 5 Ġ= ĠAES (" AES / CF B / PKCS 5 Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠC FB _ ISO 1 0 1 2 6 Ġ= ĠAES (" AES / CF B / ISO 1 0 1 2 6 Padding ") ĊĊĊĠĠĠĠĠĠĠ Ġval ĠOF B Ġ= ĠAES (" AES / OF B / No Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠOF B _ PKCS 5 Ġ= ĠAES (" AES / OF B / PKCS 5 Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠOF B _ ISO 1 0 1 2 6 Ġ= ĠAES (" AES / OF B / ISO 1 0 1 2 6 Padding ") ĊĊĠĠĠĠĠĠĠ Ġval ĠP CBC Ġ= ĠAES (" AES / PC BC / No Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠP CBC _ PKCS 5 Ġ= ĠAES (" AES / PC BC / PKCS 5 Padding ") ĊĠĠĠĠĠĠĠ Ġval ĠP CBC _ ISO 1 0 1 2 6 Ġ= ĠAES (" AES / PC BC / ISO 1 0 1 2 6 Padding ") ĊĊĊĠĠĠ Ġ} Ċ Ċ } Ċ