基于PHP和Java的AES加密

PHP版本:

class AES7
{
    protected $aesKey = 'test';

    protected $iv = '';

    public function setIv($iv)
    {
        $this->iv = $iv;
    }

    public function setKey($key)
    {
        $this->aesKey = $key;
    }

    public function encrypt($data)
    {
        $encrypted = openssl_encrypt($data, 'aes-128-ecb', ($this->aesKey), OPENSSL_RAW_DATA, ($this->iv));
        return base64_encode($encrypted);
    }

    public function decrypt($data)
    {
        $encrypted = base64_decode($data);
        $decrypted = openssl_decrypt($encrypted, 'aes-128-ecb', ($this->aesKey), OPENSSL_RAW_DATA, ($this->iv));
        return $decrypted;
    }
}



Java版本:

package com.jefferson.utils.test.crypt;

import org.apache.commons.codec.binary.Base64;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

import javax.crypto.Cipher;

import javax.crypto.spec.SecretKeySpec;

public class SecurityAESTool {

	/**
	 * AES加密
	 * 
	 * @param str
	 *            明文
	 * @param key
	 *            秘钥
	 * @return
	 */
	public static String encrypt(String str, String key) {
		byte[] crypted = null;
		try {

			SecretKeySpec skey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
			Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
			cipher.init(Cipher.ENCRYPT_MODE, skey);

			String enStr = str;
			crypted = cipher.doFinal(enStr.getBytes("UTF-8"));
		} catch (Exception e) {
			System.out.println(e.toString());
		}
		String body = new String(Base64.encodeBase64(crypted));
		return body;
	}

	/**
	 * AES解密
	 * 
	 * @param input
	 * @param key
	 * @return
	 */
	public static String decrypt(String input, String key) {
		byte[] output = null;
		String body = null;
		if (input == null || key == null) {
			return null;
		}
		try {
			SecretKeySpec skey = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
			Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
			cipher.init(Cipher.DECRYPT_MODE, skey);
			byte[] b = Base64.decodeBase64(input);
			// 解密
			output = cipher.doFinal(b);
			body = new String(output, "UTF-8");
		} catch (Exception e) {
			System.out.println(e.toString());
		}
		return body;
	}

	public static void main(String[] args) throws UnsupportedEncodingException {
		String key = "1234567812345678";// 密钥
		String data = "12345678"; // 明文

		String enStr = SecurityAESTool.encrypt(data, key);
		System.out.println(URLEncoder.encode(enStr, "UTF-8"));
	}
}


登录 后可发表评论

    最新发布
    聚合数据©版权所有