com.zoki.securityパッケージ;
インポートjava.security.Key;
輸入javax.crypto.Cipher;
インポートjavax.crypto.spec.IvParameterSpec;
インポートするjavax.crypto.spec.SecretKeySpec;
/ **
* AESの暗号化と復号化
* @author zhoukai
* /
publicクラスAES {
公共の静的な文字列を暗号化(内容文字列は、文字列のキー)がスロー例外{
試み{
=キーkeySpec新しい新しいSecretKeySpec(key.getBytes( "UTF-8")、 "AES"); // 2つのパラメータ最初の秘密鍵はバイト配列である、第二の暗号化はAESまたはDESである
キー文字列= IV; //初期化ベクトル化パラメータ、AESは、DESは8バイト。..ある16バイトである
IvParameterSpec ivSpec =新新IvParameterSpec(iv.getBytes(「UTF -8 "));
暗号暗号= Cipher.getInstance(" AES / CBC / PKCS5Padding「変換)。
cipher.init(Cipher.ENCRYPT_MODE、keySpec、ivSpec)。
バイト[] byteResult = cipher.doFinal(content.getBytes( "UTF-8"));
StringBufferのSB =新しいStringBufferを();
以下のために(INT i = 0; I <byteResult.length; iは++){
文字列ヘクス= Integer.toHexString(byteResult [I]&0xFFで)。
IF(hex.length()== 1){
ヘクス= '0' +六角。
}
sb.append(hex.toUpperCase())。
}
)(sb.toStringを返します。
}キャッチ(例外e){
e.printStackTrace();
}
はnullを返します。
}
}
需要ます。<script type = "text / javascriptの" SRC = "aes.js"> </ SCRIPT>
VAR encryptedBase64Str = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Hex.parse(データ))。
警告(encryptedBase64Str)。
VAR decrypted1 = CryptoJS.AES.decrypt(encryptedBase64Str、CryptoJS.enc.Utf8.parse( "1234567890123456")、
{
IV:CryptoJS.enc.Utf8.parse( "1234567890123456")、
モード:CryptoJS.mode.CBC、
パディング。 CryptoJS.pad.Pkcs7
})。
警告(decrypted1)。
。$( "#のTF")のval(CryptoJS.enc.Utf8.stringify(decrypted1).toString());