java aes pbe_JAVA对称加密算法PBE定义与用法实例分析
本文实例讲述了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定义与用法实例分析相关推荐
- java aes pbe,JAVA对称加密算法PBE定义与用法实例分析
本文实例讲述了JAVA对称加密算法PBE定义与用法.分享给大家供大家参考,具体如下: 一 AES.DES和3DES在使用上比较一致 二 PBE算法优点 三 PBE介绍 1.PBE:Password B ...
- java多态讲解例子_Java多态性定义与用法实例详解
本文实例讲述了Java多态性定义与用法.分享给大家供大家参考,具体如下: 多态性是通过: 1 接口和实现接口并覆盖接口中同一方法的几不同的类体现的 2 父类和继承父类并覆盖父类中同一方法的几个不同子类 ...
- JavaScript递归函数实现斐波那契数列、黄金分割数列,递归定义与用法实例分析,
递归 所递归函数就是在函数体内调用本函数.使用递归函数一定要注意,处理不当就会进入死循环.要避免进入死循环,写递归函数先要写一个结束条件(为了结束循环)递归函数一般比如阶乘问题. 下面的代码就是一个死 ...
- Java 加密解密之对称加密算法PBE
JAVA 加密解密系列 Java 加密解密基础 Java byte数组与十六进制字符串互转 Java BASE64加密解密 Java 加密解密之消息摘要算法(MD5 SHA MAC) Java 加密 ...
- 对称加密算法 PBE
概念 PBE算法(Password Based Encryption,基于口令加密)是一种基于口令的加密算法,其特点是使用口令代替了密钥,而口令由用户自己掌管,采用随机数杂凑多重加密等方法保证数据的安 ...
- Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
[最简单的加密] 1.简单的概念 明文:加密前的信息 密文:机密后的信息 算法:加密或解密的算法 密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao) 2.简单的例子 ...
- 对称加密算法-PBE算法
一.简述 PBE算法(Password Base Encryption,基于口令加密)算法是一种基于口令的加密算法.特点在于口令由用户自己掌握,采用随机数(我们这里叫做 盐)杂凑多重加密等方法保证数据 ...
- java中的对称加密算法和非对称加密算法
一.对称加密算法 指加密和解密使用相同密钥的加密算法.对称加密算法用来对敏感数据等信息进行加密,常用的算法包括DES.3DES.AES.DESX.Blowfish..RC4.RC5.RC6. ...
- java 定义抽象变量_Java抽象类和抽象方法定义与用法实例详解
本文实例讲述了Java抽象类和抽象方法定义与用法.分享给大家供大家参考,具体如下: 一.Java抽象类 1.抽象类的说明 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都 ...
最新文章
- Chemistry.AI | 基于图卷积神经网络(GCN)预测分子性质
- VTK:隐式函数之ImplicitSphere1
- vue Cli 脚手架的搭建
- acwing2058. 笨拙的手指(进制转换)
- webbrowser 打开支付宝网页提示无权打开_在押人员生活缴费更便利:支付宝线上“智慧监所”...
- LeetCode:Permutations, Permutations II(求全排列)
- linux gulp安装教程,Linux环境NodeJS安装及Gulp安装
- [剑指Offer] 26.二叉搜索树与双向链表
- 小米笔记本linux指纹,小米笔记本Air13.3寸指纹版(128GB) u盘装系统win10步骤
- 麒麟 linux下安装显卡驱动,中标麒麟7安装英伟达显卡驱动过程简述
- PS软件的一些基本快捷键
- 工作两年的程序媛,岁月在脸上留下了太多
- [wireshark] 码率统计
- Hadoop-3.3.0安装 Centos 8.2安装Hadoop-3.3.0 Hadoop-3.3.0安装指南
- Python计算:sympy解数学方程
- 互联网信息服务ICP业务许可证(仅限互联网信息服务)是什么许可证?
- 手机刷机是什么意思?快速了解手机刷机基本概念
- Linux查看nginx配置文件
- 【AcWing周赛】AcWing第85场周赛
- 批量本地英语文档翻译软件
热门文章
- CListCtrl 使用演示的例子
- 拼多多、腾讯 C++开发工程师面试题
- 程序员年纪越大,工作被取代性越强
- 听说你是程序员的,给我做个网站呗
- php 回调通知 连连支付_连连支付,或微信或支付宝支付,商品名称最后一个字乱码,php解决...
- android搜索文字变色_Android实现TextView字符串关键字变色的方法
- “新型冠状病毒国家科技资源服务系统”入选全球15项世界互联网领先科技成果...
- 功能强大的TCGA再分析平台
- 又双叒叕一个软件安装方法
- 开源︳Quicksilver for Mac(键盘启动工具)V1.6.1免费版