AES 加密算法在 java,AS,JS 中的实现_密码等的加密互解
三方只要在编码方式,key,vi 中设置一样,就可以进行跨语言加密解密,
首先是 java ,Base64 我这里是使用的 org.apache.commons
package com.jueyue.crypto;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.BAES64;
/
*******************************************************************************
* AES 加解密算法
*
* @author jueyue
*
加密用的 Key 可以用 26 个字母和数字组成,最好不要用保留字符,虽然不会错,至于
怎么裁决,个人看情况而定
此处使用 AES-128-CBC 加密模式,key 需要为 16 位。
也是使用 0102030405060708
*/
public class AES {
// 加密
public static String Encrypt(String sSrc, String sKey) throws Exception {
if (sKey == null) {
System.out.print("Key 为空 null");
return null;
}
// 判断 Key 是否为 16 位
if (sKey.length() != 16) {
System.out.print("Key 长度不是 16 位");
return null;
}
byte[] raw = sKey.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");//"算法/模式
/补码方式"
IvParameterSpec iv = new
IvParameterSpec("0102030405060708".getBytes());//使用 CBC 模式,需要一个向
量 iv,可增加加密算法的强度
- 1
- 2
- 3
- 4
前往页