Java 实现 AES 加密和解密算法
本文就简单介绍如何通过 JAVA 实现 AES 加密:
AES 加密算法知识普及:
AES 算法,又称 Rijndael 加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先
的 DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与
技术研究院 (NIST)于 2001 年 11 月 26 日发布于 FIPS PUB 197,并在 2002 年 5 月 26 日成为有效
的标准。2006 年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
参考 demo 代码如下:
package net.mbaike.aes;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/**
* Java实现AES加密和解密算法
* @author 移动互联百科
* @date 2013-11-05
*/
public class AESUtils {
/**
* AES加密
* @param content 需要加密的内容
* @param password 加密密码
* @return
*/
public static byte[] encrypt(String content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128, new SecureRandom(password.getBytes()));
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
/**创建密码器**/
Cipher cipher = Cipher.getInstance("AES");
byte[] byteContent = content.getBytes("utf-8");
/**初始化密码器**/
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] result = cipher.doFinal(byteContent);
return result;
评论5