java 实现AES加密解密代码

代码语言:java

所属分类:加密解密

代码描述:java 实现AES加密解密代码

代码标签: 加密解密

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
 
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.io.*;
 
public class HelloWorld {
       
/**
     * AES加密字符串
     *
     * @param content
     *            需要被加密的字符串
     * @param password
     *            加密需要的密码
     * @return 密文
     */

   
public static byte[] encrypt(String content, String password)  throws Exception {
       
try {
           
                       
KeyGenerator kgen = KeyGenerator.getInstance("AES");
                   
//替换开始
               
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
                secureRandom
.setSeed(password.getBytes());
                    kgen
.init(128, secureRandom);
               
// 为我们选择的DES算法生成一个KeyGenerator对象
           

           
//加密没关系,SecureRandom是生成安全随机数序列,password.getBytes()是种子,只要种子相同,序列就一样,所以解密只要有password就行
           
SecretKey secretKey = kgen.generateKey();// 根据用户密码,生成一个密钥
           
byte[] enCodeFormat = secretKey.getEncoded();// 返回基本编码格式的密钥,如果此密钥不支持编码,则返回
           
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");// 转换为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;
       
} catch (NoSuchPaddingException e) {
            e
.printStackTrace();
       
} catch (NoSuchAlgorithmException e) {
            e
.printStackTrace();
       
} catch (UnsupportedEncodingException e) {
            e
.printStackTrace();
       
} catch (InvalidKeyException e) {
            e
.printStackTrace();
       
} catch (Il.........完整代码请登录后点击上方下载按钮下载查看

网友评论0