- 浏览: 2138626 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。常用的对称加密有:DES(Data Encryption Standard)、IDEA、RC2、RC4、SKIPJACK、RC5、AES算法等
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
PBE——Password-based encryption(基于密码加密)其特点在于口令由用户自己掌管,不借助任何物理媒体;采用随机数(这里我们叫做盐)杂凑多重加密等方法保证数据的安全性。是一种简便的对称加密方式。
PBE算法没有密钥(秘密[对称]密钥)的概念,把密码+盐+消息摘要迭代数当做密钥了。因为密钥长短影响算法安全性,还不方便记忆,这里我们直接换成我们自己常用的密码就大大不同了,便于我们的记忆。但是单纯的密码很容易被字典法给穷举出来,所以我们这里给密码加了点“盐”,这个盐和密码组合,想破解就难了。同时我们将盐和口令合并后用消息摘要算法进行迭代很多次来构建密钥初始化向量的基本材料,使破译更加难了。
PBE算法没构建新的加密算法,就是用了我们常用的对称加密算法,例如AES,DES等算法。它是将密钥的概念转成 “口令+盐” 的方式,将不便于记忆的密钥转成便于记忆的口令。
这个是不是和我们到银行开的U盾有些像呢?
就拿民生银行的U盾来说,我们插上U盾,还需要我们去输入口令。然后才能到网上银行去登陆操作,付款的时候还是需要我们去输入口令。
1、U盾的盐从何来?:应该是那个闪盘的序列编号经过一定的处理得出的一个值,因为我们想要U盾生效,在民生的大厅中需要找一个机器激活的。那个激活的动作应该是将我们U盾这个闪盘中的数据写入到我们个人的账户中,相当于做了一次盐的公布
2、口令何来?:就是我们设定的登陆密码呀。这个在窗口办理的时候需要我们设定U盾的密码。并且我们在激活的时候可以改我们的密码
有了上边两个,我们再进行操作,就可以进行我们的身份发送数据的安全性了。网银的数据交换真的安全了...
java6和bouncycastle支持的算法列表
算法 密钥长度 密钥长度默认值 工作模式 填充方式 备注
PBEWithMD5AndDES 56 56 CBC PKCS5Padding java6实现
PBEWithMD5AndTripeDES 112、168 168 CBC PKCS6Padding java7实现
PBEWithSHA1AndDESede 112、168 168 CBC PKCS7Padding java8实现
PBEWithSHA1AndRC2_40 40至1024 128 CBC PKCS8Padding java9实现
PBEWithMD5AndDES 64 64 CBC PKCS5Padding/PKCS7Padding/ISO10126Padding/ZeroBytePadding BouncyCastle实现
PBEWithMD5AndRC2 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10127Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHA1AndDES 64 64 CBC PKCS5Padding/PKCS7Padding/ISO10128Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHA1AndRC2 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10129Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAndIDEA-CBC 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10130Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd2-KeyTripleDES-CBC 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10131Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd3-KeyTripleDES-CBC 192 192 CBC PKCS5Padding/PKCS7Padding/ISO10132Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd128BitRC2-CBC 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10133Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd40BitRC2-CBC 40 40 CBC PKCS5Padding/PKCS7Padding/ISO10134Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd128BitRC4 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10135Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd40BitRC4 40 40 CBC PKCS5Padding/PKCS7Padding/ISO10136Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAndTwofish-CBC 256 256 CBC PKCS5Padding/PKCS7Padding/ISO10137Padding/ZeroBytePadding BouncyCastle实现
PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签 名、数字信封的格式等方面的一系列相关协议。
PBE加密例子:
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
PBE——Password-based encryption(基于密码加密)其特点在于口令由用户自己掌管,不借助任何物理媒体;采用随机数(这里我们叫做盐)杂凑多重加密等方法保证数据的安全性。是一种简便的对称加密方式。
PBE算法没有密钥(秘密[对称]密钥)的概念,把密码+盐+消息摘要迭代数当做密钥了。因为密钥长短影响算法安全性,还不方便记忆,这里我们直接换成我们自己常用的密码就大大不同了,便于我们的记忆。但是单纯的密码很容易被字典法给穷举出来,所以我们这里给密码加了点“盐”,这个盐和密码组合,想破解就难了。同时我们将盐和口令合并后用消息摘要算法进行迭代很多次来构建密钥初始化向量的基本材料,使破译更加难了。
PBE算法没构建新的加密算法,就是用了我们常用的对称加密算法,例如AES,DES等算法。它是将密钥的概念转成 “口令+盐” 的方式,将不便于记忆的密钥转成便于记忆的口令。
这个是不是和我们到银行开的U盾有些像呢?
就拿民生银行的U盾来说,我们插上U盾,还需要我们去输入口令。然后才能到网上银行去登陆操作,付款的时候还是需要我们去输入口令。
1、U盾的盐从何来?:应该是那个闪盘的序列编号经过一定的处理得出的一个值,因为我们想要U盾生效,在民生的大厅中需要找一个机器激活的。那个激活的动作应该是将我们U盾这个闪盘中的数据写入到我们个人的账户中,相当于做了一次盐的公布
2、口令何来?:就是我们设定的登陆密码呀。这个在窗口办理的时候需要我们设定U盾的密码。并且我们在激活的时候可以改我们的密码
有了上边两个,我们再进行操作,就可以进行我们的身份发送数据的安全性了。网银的数据交换真的安全了...
java6和bouncycastle支持的算法列表
算法 密钥长度 密钥长度默认值 工作模式 填充方式 备注
PBEWithMD5AndDES 56 56 CBC PKCS5Padding java6实现
PBEWithMD5AndTripeDES 112、168 168 CBC PKCS6Padding java7实现
PBEWithSHA1AndDESede 112、168 168 CBC PKCS7Padding java8实现
PBEWithSHA1AndRC2_40 40至1024 128 CBC PKCS8Padding java9实现
PBEWithMD5AndDES 64 64 CBC PKCS5Padding/PKCS7Padding/ISO10126Padding/ZeroBytePadding BouncyCastle实现
PBEWithMD5AndRC2 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10127Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHA1AndDES 64 64 CBC PKCS5Padding/PKCS7Padding/ISO10128Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHA1AndRC2 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10129Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAndIDEA-CBC 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10130Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd2-KeyTripleDES-CBC 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10131Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd3-KeyTripleDES-CBC 192 192 CBC PKCS5Padding/PKCS7Padding/ISO10132Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd128BitRC2-CBC 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10133Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd40BitRC2-CBC 40 40 CBC PKCS5Padding/PKCS7Padding/ISO10134Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd128BitRC4 128 128 CBC PKCS5Padding/PKCS7Padding/ISO10135Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAnd40BitRC4 40 40 CBC PKCS5Padding/PKCS7Padding/ISO10136Padding/ZeroBytePadding BouncyCastle实现
PBEWithSHAAndTwofish-CBC 256 256 CBC PKCS5Padding/PKCS7Padding/ISO10137Padding/ZeroBytePadding BouncyCastle实现
PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签 名、数字信封的格式等方面的一系列相关协议。
PBE加密例子:
package com.ca.test; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEParameterSpec; import org.apache.commons.codec.binary.Base64; /** * 对称加密算法:基于口令加密-PBE算法实现 * 使用java6提供的PBEWITHMD5andDES算法进行展示 * @author kongqz * */ public class PBECoder { /** * JAVA6支持以下任意一种算法 * PBEWITHMD5ANDDES * PBEWITHMD5ANDTRIPLEDES * PBEWITHSHAANDDESEDE * PBEWITHSHA1ANDRC2_40 * PBKDF2WITHHMACSHA1 * */ public static final String ALGORITHM="PBEWITHMD5andDES"; /** * 迭代次数 * */ public static final int ITERATION_COUNT=100; /** * 盐初始化 * 盐长度必须为8字节 * @return byte[] 盐 * */ public static byte[] initSalt() throws Exception{ //实例化安全随机数 SecureRandom random=new SecureRandom(); //产出盐 return random.generateSeed(8); } /** * 转换密钥 * @param password 密码 * @return Key 密钥 * */ private static Key toKey(String password) throws Exception{ //密钥彩礼转换 PBEKeySpec keySpec=new PBEKeySpec(password.toCharArray()); //实例化 SecretKeyFactory keyFactory=SecretKeyFactory.getInstance(ALGORITHM); //生成密钥 SecretKey secretKey=keyFactory.generateSecret(keySpec); return secretKey; } /** * 加密 * @param data 待加密数据 * @param password 密码 * @param salt 盐 * @return byte[] 加密数据 * * */ public static byte[] encrypt(byte[] data,String password,byte[] salt) throws Exception{ //转换密钥 Key key=toKey(password); //实例化PBE参数材料 PBEParameterSpec paramSpec=new PBEParameterSpec(salt,ITERATION_COUNT); //实例化 Cipher cipher=Cipher.getInstance(ALGORITHM); //初始化 cipher.init(Cipher.ENCRYPT_MODE, key,paramSpec); //执行操作 return cipher.doFinal(data); } /** * 解密 * @param data 待解密数据 * @param password 密码 * @param salt 盐 * @return byte[] 解密数据 * * */ public static byte[] decrypt(byte[] data,String password,byte[] salt) throws Exception{ //转换密钥 Key key=toKey(password); //实例化PBE参数材料 PBEParameterSpec paramSpec=new PBEParameterSpec(salt,ITERATION_COUNT); //实例化 Cipher cipher=Cipher.getInstance(ALGORITHM); //初始化 cipher.init(Cipher.DECRYPT_MODE, key,paramSpec); //执行操作 return cipher.doFinal(data); } /** * 使用PBE算法对数据进行加解密 * @throws Exception * */ public static void main(String[] args) throws Exception { //待加密数据 String str="PBE"; //设定的口令密码 String password="azsxdc"; System.out.println("原文:/t"+str); System.out.println("密码:/t"+password); //初始化盐 byte[] salt=PBECoder.initSalt(); System.out.println("盐:/t"+Base64.encodeBase64String(salt)); //加密数据 byte[] data=PBECoder.encrypt(str.getBytes(), password, salt); System.out.println("加密后:/t"+Base64.encodeBase64String(data)); //解密数据 data=PBECoder.decrypt(data, password, salt); System.out.println("解密后:"+new String(data)); } } 控制台结果输出: 原文: PBE 密码: azsxdc 盐: VeEQqRzOw2Y= 加密后: 7bQTon5WD04= 解密后:PBE
发表评论
-
xml 字符串和xml Document相互转换、xml Document内容输出到http response
2012-11-05 10:07 5499import java.io.ByteArrayOutpu ... -
isAssignableFrom & isInstance
2012-11-02 14:34 1174java.lang.Object extended by ja ... -
Struts 1.1 ExceptionHandler(转)
2012-11-02 10:20 1353转自:SSH项目中利用Exce ... -
openssl 非对称加密DSA,RSA区别与使用介绍(转)
2012-10-26 16:42 14109在日常系统管理工作中,需要作一些加解密的工作,通过openss ... -
X.509、数字签名、CA(Certificate Authority)、自签名证书、PKI
2012-10-18 14:22 6250X.509是由国际电联电信委员会(ITU-T)为单点登录(SS ... -
keytool、keystore、jarsigner、生成自签名证书
2012-10-18 10:27 7945Keytool是Java的密钥和数字证书管理工具,位于JDK_ ... -
(转)为什么应该放弃或减少使用MD5
2012-10-11 10:48 2070MD5是一种常用的单向哈 ... -
Java 类初始化顺序
2012-08-21 14:07 1054class Parent { // 静态变量 pu ... -
java嵌套类、静态嵌套类、内部类
2012-08-21 10:29 2074官网文档:Nested Classes 什么是嵌套类及内部类 ... -
java静态类、静态方法、静态变量、实例变量、线程本地变量、静态线程本地变量
2012-08-21 10:24 1844静态类: 只有嵌套类才 ... -
iptables 命令格式、语法
2012-07-20 15:01 2793转自:第三章:iptables ... -
防火墙、Iptables、netfilter/iptables、NAT 概述
2012-07-20 14:12 9633转自:防火墙的概述 一、防火墙的简介 防火墙是指设置在不同 ... -
ProcessBuilder 和 Runtime
2012-07-17 09:26 20841ProcessBuilder.start() 和 Runtim ... -
(转)xml schema xsd 入门
2012-06-28 16:05 2421理解XML Schema: XML Schema 初步 (I) ... -
XmlRootElement JAXB注解
2012-06-28 15:23 39001@Retention(value=RUNTIME) @T ... -
jaxb xml数据绑定
2012-06-28 14:22 1298XML Schema编辑工具:XML Spy 常见的XML绑 ... -
(转)jpa 注解
2012-06-25 16:00 1282转自:jpa 注解 1.设置Po ... -
(转)JPA(Java Persistence API)简介
2012-06-25 14:20 1507转自JPA基础(一):全 ... -
Play 内置模板标签(1.2.3版本)
2012-06-18 14:03 4961Play framework 1.2.3 Built-in t ... -
play plugin插件 实现类似Servlet中的拦截器效果
2012-06-15 15:05 3612play plugin和module的区别见:play Mod ...
相关推荐
PBE算法是对称加密算法的综合算法,常见算法PBEWithMD5AndDES,使用MD5和DES算法构建了PBE算法。将盐附加在口令上,通过消息摘要算法经过迭代获得构建密钥的基本材料,构建密钥后使用对称加密算法进行加密解密。 ...
对称加密算法PBE(Java).rar NetBeans环境可运行 对称加密算法PBE(Java).rar NetBeans环境可运行
除了DES,我们还知道有DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法——PBE
java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...
Android基于密码的加密(PBE)实现。.zip
对称加密代码 对称加密代码 对称加密代码 对称加密代码 对称加密代码
主要介绍了JAVA对称加密算法PBE定义与用法,结合实例形式分析了JAVA对称加密算法PBE的概念、原理、定义及使用方法,需要的朋友可以参考下
WDSsoft免费源代码,java加密解密编程常用工具包 JCT 1.0,作者吴东升 常蕴秋,BlowfishTool.java封装同Blowfish对称加密算法有关的方法,包括了使用创建Blowfish密码,使用Blowfish加密、解密, 使用PBE(基于口令的...
java 文件加密解密 DES PBE RSA DH DSA ECC 等算法代码,如有需要可直接下载
java的PBEWithMD5AndDES加密 C#的PBEWithMD5AndDES加密
Java加密技术(三)——PBE算法 Java加密技术(四)——非对称加密算法RSA Java加密技术(五)——非对称加密算法的由来DH Java加密技术(六)——数字签名算法DSA Java加密技术(七)——非对称加密算法最高级ECC ...
PBE 加密实例,加密后用base64转码.密文具有一定的时效性,时间可自定义
● PBE(Password-based encryption,基于密码验证) ● RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman) ● DH(Diffie-Hellman算法,密钥一致协议) ● DSA(Digital Signature ...
文件校验209 6.8 小结211 第7章初等数据加密—对称加密算法213 7.1 对称加密算法简述213 7.2 数据加密标准—DES 214 7.3 三重DES—DESede 222 7.4 高级数据加密标准—AES 227 7.5 国际数据加密标准—IDEA 232 7.6 ...
文件校验2096.8 小结211第7章初等数据加密—对称加密算法2137.1 对称加密算法简述2137.2 数据加密标准—DES 2147.3 三重DES—DESede 2227.4 高级数据加密标准—AES 2277.5 国际数据加密标准—IDEA 2327.6 基于口令...
JavaSecurity 使用摘要算法 Base64 MD SHA MAC对称加密 DES AES PBE非对称加密算法 DH RSA ElGamal
java加密技术 与单向加密算法MD5&SHA;&MAC; 对称加密算法DES&AES; PBE 算法
加密算法包含:AES、DES、DH、ECDSA、MD5、PBE、RC4、RSA、ThreeDES等
● BASE64 严格地说,属于编码格式,而非加密算法 ● MD5(Message Digest algorithm 5,信息摘要算法) ... ● PBE(Password-based encryption,基于密码验证) ● RSA(算法的名字以发明者的名
DES PBE RSA DH DSA ECC 等算法代码