对称算法--PBE
来源:互联网 发布:go并发编程实战 epub 编辑:程序博客网 时间:2024/04/27 21:38
1.用到的jar包:http://pan.baidu.com/s/1mgIbLvq提取码:ytj9
2.用法
3。代码实现:
package com.tan.sucurity;import java.security.Key;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java.security.spec.InvalidKeySpecException;import javax.crypto.Cipher;import javax.crypto.NoSuchPaddingException;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.PBEKeySpec;import javax.crypto.spec.PBEParameterSpec;import org.apache.commons.codec.binary.Base64;import org.bouncycastle.asn1.pkcs.PBEParameter;/** * 功能:PEB算法 * @author TanZi * @time 2015年4月25日 上午10:05:40 */public class MyPBE {public static void main(String[] args) {//初始化盐SecureRandom random=new SecureRandom();byte[] salt=random.generateSeed(8);MyPBE myPBE=new MyPBE();byte[] result=myPBE.EncryptPBE("tanzi", "nihao",salt);System.out.println("加密:"+Base64.encodeBase64String(result));result=myPBE.DecryptPBE("tanzi", result,salt);System.out.println("解密:"+new String(result));} /** * 功能:获取一个Key * @param password * @return */public Key toKey(String password){Key key=null;try {PBEKeySpec pbeKeySpec=new PBEKeySpec(password.toCharArray());SecretKeyFactory factory=SecretKeyFactory.getInstance("PBEWITHMD5andDES");key=factory.generateSecret(pbeKeySpec);} catch (Exception e) {e.printStackTrace();}return key;}/** * 功能:解密 * @param password 口令 * @param result 加密数据 * @param salt 盐 * @return */public byte[] DecryptPBE(String password,byte[] result,byte[] salt){try {Key key=toKey(password);PBEParameterSpec pbeParameterSpec=new PBEParameterSpec(salt, 100);Cipher cipher=Cipher.getInstance("PBEWITHMD5andDES");cipher.init(Cipher.DECRYPT_MODE, key, pbeParameterSpec);result=cipher.doFinal(result);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return result;}/** * 功能:对数据的加密 * @param password 口令 * @param src 要加密的数据 * @param salt 盐 * @return */public byte[] EncryptPBE(String password,String src,byte[] salt){ byte[] result=null;//口令与密钥PBEKeySpec pbeKeySpec=new PBEKeySpec(password.toCharArray());try {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); result=cipher.doFinal(src.getBytes()); } catch (Exception e) {e.printStackTrace();} return result;}}
0 0
- 对称加密算法-PBE算法
- 对称算法--PBE
- 对称加密算法-PBE算法
- 对称密码之PBE
- 对称加密算法PBE
- JAVA-对称加密算法PBE
- 对称加密算法DES、AES、PBE
- PBE算法加密
- java PBE算法
- PBE算法加密
- Java 加密解密之对称加密算法PBE
- Java 加密解密之对称加密算法PBE
- 每日一得--对称加密算法之(PBE)
- Java 加密解密之对称加密算法PBE
- Java 加密解密之对称加密算法PBE
- Imooc_JAVA实现对称加密4-1 JAVA-对称加密算法PBE
- 【Java加密解密】PBE算法
- Java加密技术(三)对称加密算法PBE
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- UOJ#13【UER#1】跳蚤OS
- UNIX标准化
- java8 的十大新特性
- DOS命令下用Java SDK开发工具开发应用程序
- 对称算法--PBE
- 大话设计模式之状态模式
- 天声人語 20150425
- 网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解
- Service初步
- 杭电。刘春英。老师 写给计算机软件专业的大学生
- Android事件的分发传递机制
- MySQL galera 的安装使用
- 日经春秋 20150425