java md5加密 key_JAVA实现AES和MD5加密

packagetest;importjava.io.UnsupportedEncodingException;importjava.security.InvalidKeyException;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;importjava.security.SecureRandom;importjavax.crypto.BadPaddingException;importjavax.crypto.Cipher;importjavax.crypto.IllegalBlockSizeException;importjavax.crypto.KeyGenerator;importjavax.crypto.NoSuchPaddingException;importjavax.crypto.SecretKey;importjavax.crypto.spec.SecretKeySpec;importsun.misc.BASE64Encoder;public classTest {public static voidmain(String[] args) {

BASE64Encoder encode= newBASE64Encoder();

String a= encode.encode(aesEncrypt("123456","123456"));

String b= encode.encode(md5Encrypt("123456"));

System.out.println(a);

System.out.println(a.length());

System.out.println(b);

System.out.println(b.length());

}/*** AES加密

*

*@paramcontent 需要加密的内容

*@parampassword 加密密码

*@return

*/

public static byte[] aesEncrypt(String content, String password) {try{//获取AES密钥生成器

KeyGenerator kgen = KeyGenerator.getInstance("AES");//使用用户提供的随机源初始化密钥生成器,密钥大小为128位。

kgen.init(128, newSecureRandom(password.getBytes()));//生成密钥

SecretKey secretKey =kgen.generateKey();//获取基本编码格式密钥,如果不支持编码则返回null

byte[] enCodeFormat =secretKey.getEncoded();//根据给定的字节数组构造一个密钥

SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");//创建密码器

Cipher cipher = Cipher.getInstance("AES");//使用UTF-8将加密内容编码为byte序列

byte[] byteContent = content.getBytes("utf-8");//用密钥初始化此密码器为加密模式的常量

cipher.init(Cipher.ENCRYPT_MODE, key);//按单部分操作加密数据并返回

returncipher.doFinal(byteContent);

}catch(NoSuchAlgorithmException e) {

e.printStackTrace();

}catch(NoSuchPaddingException e) {

e.printStackTrace();

}catch(InvalidKeyException e) {

e.printStackTrace();

}catch(UnsupportedEncodingException e) {

e.printStackTrace();

}catch(IllegalBlockSizeException e) {

e.printStackTrace();

}catch(BadPaddingException e) {

e.printStackTrace();

}return null;

}public static byte[] md5Encrypt(String str){try{

MessageDigest digest= MessageDigest.getInstance("Md5");returndigest.digest(str.getBytes());

}catch(NoSuchAlgorithmException e) {

e.printStackTrace();return null;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值