本文实例讲述了JAVA对称加密算法PBE定义与用法。分享给大家供大家参考,具体如下:

一 AES、DES和3DES在使用上比较一致

二 PBE算法优点

三 PBE介绍

1、PBE:Password Based Encryption 基于口令加密。通过加Salt来增强安全性。

2、对已有算法的包装

3、JDK和BC的实现

4、通过加Salt来增强安全性

四 常见算法

五代码实现

package com.imooc.security.pbe;

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 org.apache.commons.codec.binary.Base64;

public class ImoocPBE {

private static String src = "cakin24 security pbe";

public static void main(String[] args) {

jdkPBE();

}

public static void jdkPBE() {

try {

//初始化盐

SecureRandom random = new SecureRandom();

byte[] salt = random.generateSeed(8);

//口令与密钥

String password = "cakin24";

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 : " + Base64.encodeBase64String(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();

}

}

}

六 实现效果

jdk pbe encrypt : UKXIqWmtrNBpJ1ayTgGWmpswSLPLel5X

jdk pbe decrypt : cakin24 security pbe

七 应用场景

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:http://tools.jb51.net/password/hash_md5_sha

希望本文所述对大家java程序设计有所帮助。

java aes pbe_JAVA对称加密算法PBE定义与用法实例分析相关推荐

  1. java aes pbe,JAVA对称加密算法PBE定义与用法实例分析

    本文实例讲述了JAVA对称加密算法PBE定义与用法.分享给大家供大家参考,具体如下: 一 AES.DES和3DES在使用上比较一致 二 PBE算法优点 三 PBE介绍 1.PBE:Password B ...

  2. java多态讲解例子_Java多态性定义与用法实例详解

    本文实例讲述了Java多态性定义与用法.分享给大家供大家参考,具体如下: 多态性是通过: 1 接口和实现接口并覆盖接口中同一方法的几不同的类体现的 2 父类和继承父类并覆盖父类中同一方法的几个不同子类 ...

  3. JavaScript递归函数实现斐波那契数列、黄金分割数列,递归定义与用法实例分析,

    递归 所递归函数就是在函数体内调用本函数.使用递归函数一定要注意,处理不当就会进入死循环.要避免进入死循环,写递归函数先要写一个结束条件(为了结束循环)递归函数一般比如阶乘问题. 下面的代码就是一个死 ...

  4. Java 加密解密之对称加密算法PBE

    JAVA  加密解密系列 Java 加密解密基础 Java byte数组与十六进制字符串互转 Java BASE64加密解密 Java 加密解密之消息摘要算法(MD5 SHA MAC) Java 加密 ...

  5. 对称加密算法 PBE

    概念 PBE算法(Password Based Encryption,基于口令加密)是一种基于口令的加密算法,其特点是使用口令代替了密钥,而口令由用户自己掌管,采用随机数杂凑多重加密等方法保证数据的安 ...

  6. Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA

    [最简单的加密] 1.简单的概念 明文:加密前的信息 密文:机密后的信息 算法:加密或解密的算法 密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao) 2.简单的例子 ...

  7. 对称加密算法-PBE算法

    一.简述 PBE算法(Password Base Encryption,基于口令加密)算法是一种基于口令的加密算法.特点在于口令由用户自己掌握,采用随机数(我们这里叫做 盐)杂凑多重加密等方法保证数据 ...

  8. java中的对称加密算法和非对称加密算法

    一.对称加密算法 指加密和解密使用相同密钥的加密算法.对称加密算法用来对敏感数据等信息进行加密,常用的算法包括DES.3DES.AES.DESX.Blowfish..RC4.RC5.RC6.     ...

  9. java 定义抽象变量_Java抽象类和抽象方法定义与用法实例详解

    本文实例讲述了Java抽象类和抽象方法定义与用法.分享给大家供大家参考,具体如下: 一.Java抽象类 1.抽象类的说明 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都 ...

最新文章

  1. Chemistry.AI | 基于图卷积神经网络(GCN)预测分子性质
  2. VTK:隐式函数之ImplicitSphere1
  3. vue Cli 脚手架的搭建
  4. acwing2058. 笨拙的手指(进制转换)
  5. webbrowser 打开支付宝网页提示无权打开_在押人员生活缴费更便利:支付宝线上“智慧监所”...
  6. LeetCode:Permutations, Permutations II(求全排列)
  7. linux gulp安装教程,Linux环境NodeJS安装及Gulp安装
  8. [剑指Offer] 26.二叉搜索树与双向链表
  9. 小米笔记本linux指纹,小米笔记本Air13.3寸指纹版(128GB) u盘装系统win10步骤
  10. 麒麟 linux下安装显卡驱动,中标麒麟7安装英伟达显卡驱动过程简述
  11. PS软件的一些基本快捷键
  12. 工作两年的程序媛,岁月在脸上留下了太多
  13. [wireshark] 码率统计
  14. Hadoop-3.3.0安装 Centos 8.2安装Hadoop-3.3.0 Hadoop-3.3.0安装指南
  15. Python计算:sympy解数学方程
  16. 互联网信息服务ICP业务许可证(仅限互联网信息服务)是什么许可证?
  17. 手机刷机是什么意思?快速了解手机刷机基本概念
  18. Linux查看nginx配置文件
  19. 【AcWing周赛】AcWing第85场周赛
  20. 批量本地英语文档翻译软件

热门文章

  1. CListCtrl 使用演示的例子
  2. 拼多多、腾讯 C++开发工程师面试题
  3. 程序员年纪越大,工作被取代性越强
  4. 听说你是程序员的,给我做个网站呗
  5. php 回调通知 连连支付_连连支付,或微信或支付宝支付,商品名称最后一个字乱码,php解决...
  6. android搜索文字变色_Android实现TextView字符串关键字变色的方法
  7. “新型冠状病毒国家科技资源服务系统”入选全球15项世界互联网领先科技成果...
  8. 功能强大的TCGA再分析平台
  9. 又双叒叕一个软件安装方法
  10. 开源︳Quicksilver for Mac(键盘启动工具)V1.6.1免费版