Java code
Private Static FinalString defaultcharset = "UTF-8"; Private Static FinalString Key_aes = "AES"; Private Static FinalString key_md5 = "MD5"; Public Static FinalString key = "Test"; Public Staticstring Encrypt (string data, string key) {returnDoaes (data, key, Cipher.encrypt_mode); } /*** Plus decryption * *@paramData *@paramKey *@parammode *@return */ Private StaticString Doaes (String data, String key,intmode) { Try { if(Stringutils.isblank (data) | |Stringutils.isblank (Key)) { return NULL; } BooleanEncrypt = Mode = =Cipher.encrypt_mode; byte[] content; if(Encrypt) {content=data.getbytes (Defaultcharset); } Else{content=base64.decodebase64 (Data.getbytes (Defaultcharset)); } //Create keySecretkeyspec KeySpec =NewSecretkeyspec (Md5digest.digest (Key.getbytes (Defaultcharset)), Key_aes); //Create a password deviceCipher Cipher =cipher.getinstance (Key_aes); //Initializecipher.init (mode, KEYSPEC); byte[] result =cipher.dofinal (content); if(encrypt) {return NewString (base64.encodebase64 (result)); } Else { return NewString (result, defaultcharset); } } Catch(Exception e) {System.err.println ("AES Ciphertext handling exception" +e); E.printstacktrace (); } return NULL; }
The corresponding. NET code:
Public Static stringAesencrypt (stringStrstringkey) { //secret key fetch MD5MD5 MD5 =NewMD5CryptoServiceProvider (); byte[] t =Md5.computehash (Encoding.UTF8.GetBytes (key)); if(string. IsNullOrEmpty (str))return NULL; Byte[] Toencryptarray=Encoding.UTF8.GetBytes (str); RijndaelManaged RM=Newrijndaelmanaged {Key=T, Mode=CIPHERMODE.ECB, Padding=PADDINGMODE.PKCS7}; ICryptoTransform Ctransform=RM. CreateEncryptor (); Byte[] Resultarray= Ctransform.transformfinalblock (Toencryptarray,0, toencryptarray.length); returnConvert.tobase64string (Resultarray,0, resultarray.length); } Public Static stringAesdecrypt (stringStrstringkey) { if(string. IsNullOrEmpty (str))return NULL; MD5 MD5=NewMD5CryptoServiceProvider (); byte[] t =Md5.computehash (Encoding.UTF8.GetBytes (key)); Byte[] Toencryptarray=convert.frombase64string (str); RijndaelManaged RM=Newrijndaelmanaged {Key=T, Mode=CIPHERMODE.ECB, Padding=PADDINGMODE.PKCS7}; ICryptoTransform Ctransform=RM. CreateDecryptor (); Byte[] Resultarray= Ctransform.transformfinalblock (Toencryptarray,0, toencryptarray.length); returnEncoding.UTF8.GetString (resultarray); }
AES encryption (for Java and. net)