PBE实现加密算法

来源:互联网 发布:定向数据流量 编辑:程序博客网 时间:2024/06/05 19:49

1.新建一个java项目,里面新建一个java 类,整体的框架如图所示:



2.PBE.java里面的代码如下所示:

import java.security.Key;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.PBEKeySpec;import javax.crypto.spec.PBEParameterSpec;import com.sun.org.apache.xerces.internal.impl.dv.util.HexBin;public class PBE {private static String src = "mu rong fei fei 636";public static void jdkPBE() {try {// 初始化加盐SecureRandom random = new SecureRandom();byte[] salt = random.generateSeed(8);// 口令与密钥String password = "wahaha";PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray());SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHMD5andDES");Key key = factory.generateSecret(pbeKeySpec);// 加密PBEParameterSpec pbeParameterSpec = new PBEParameterSpec(salt, 100);Cipher cipher = Cipher.getInstance("PBEWITHMD5andDES");cipher.init(Cipher.ENCRYPT_MODE, key, pbeParameterSpec);byte[] result = cipher.doFinal(src.getBytes());System.out.println("jdk pbe encrypt:" + HexBin.encode(result));// 解密cipher.init(Cipher.DECRYPT_MODE, key, pbeParameterSpec);result = cipher.doFinal(result);System.out.println("jdk pbe decrypt:" + new String(result));} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {jdkPBE();}}

3.运行之后可以得到加密和解密的结果: