AES、Javaの暗号化と復号化のJSを使用して

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());

 

おすすめ

転載: blog.csdn.net/luyinxing1/article/details/77089676