使用AES,java加密与js解密

package com.zoki.security;
 
import java.security.Key;


import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
 
/**
 * AES加密解密
 * @author zhoukai
 */
public class AES {
 
 
public static String encrypt(String content, String key) throws Exception {
        try {


        Key keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");    //两个参数,第一个为私钥字节数组, 第二个为加密方式 AES或者DES


            String iv   = key;//初始化向量参数,AES 为16bytes. DES 为8bytes.


            IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes("UTF-8"));


            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
            cipher.init(Cipher.ENCRYPT_MODE, keySpec,ivSpec);


            byte[] byteResult = cipher.doFinal(content.getBytes("UTF-8"));
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < byteResult.length; i++) {
                String hex = Integer.toHexString(byteResult[i] & 0xFF);
                if (hex.length() == 1) {
                    hex = '0' + hex;
                }
                sb.append(hex.toUpperCase());
            }
            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}

需要 <script type="text/javascript" src="aes.js"></script>

var encryptedBase64Str = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Hex.parse(data));
        alert(encryptedBase64Str);
        var decrypted1 = CryptoJS.AES.decrypt(encryptedBase64Str, CryptoJS.enc.Utf8.parse("1234567890123456"),
                {
                    iv: CryptoJS.enc.Utf8.parse("1234567890123456"),
                    mode:CryptoJS.mode.CBC,
                    padding:CryptoJS.pad.Pkcs7
                });
                alert(decrypted1);
        $("#tf").val(CryptoJS.enc.Utf8.stringify(decrypted1).toString());

猜你喜欢

转载自blog.csdn.net/luyinxing1/article/details/77089676