PBE加密——对称加密,
特点在于口令由用户自己掌管;采用随机数(这里我们叫做盐)杂凑多重加密等方法保证数据的安全性。
盐加密法
eg:
/**
* 获取密码为password的pbe密钥
* @param password
* @return
* @throws Exception
*/
private static SecretKey getPBESecretKey(String password) throws Exception{
//制作secretKey
PBEKeySpec pbeSpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory seckeyFactory = SecretKeyFactory.getInstance("PBEWITHMD5andDES");
SecretKey secretkey = seckeyFactory.generateSecret(pbeSpec);
return secretkey;
}
/**
* 制作8位盐
* @return
*/
private static byte [] makeSaltAry(){
byte [] saltbyte = new byte[8];
Random random = new Random();
random.nextBytes(saltbyte);
return saltbyte;
}
/**
* @param mingwen 明文
* @param password 密码
* @param saltary 随机算法盐
* @return
* @throws Exception
*/
public static byte [] pbeEncryption(byte [] mingwen,String password,byte [] saltary,int cipherMode) throws Exception{
//1.根据盐制作pbe计算规则 : 盐+int数字 ---此加密算法硬性规定
PBEParameterSpec pbeprar = new PBEParameterSpec(saltary,100);
//2.制作密钥
SecretKey secretkey = getPBESecretKey("woshipassword");
//3.制作加密解密器
Cipher cipher = Cipher.getInstance("PBEWITHMD5andDES");
//4.告知加密解密器的操作 -- 加密,密钥,算法
cipher.init(cipherMode, secretkey, pbeprar);
//5.加密器开始工作——加密/解密
return cipher.doFinal(mingwen);
}
public static void main(String args []){
String yuanwen = "i am yuanwen";
System.out.println("原文 :"+yuanwen);
String password = "pwp2waa";
System.out.println("密码 :"+password);
byte salt[] = makeSaltAry();
// byte salt[] = "12345678".getBytes();
try {
byte [] change1 = pbeEncryption(yuanwen.getBytes(), password, salt,Cipher.ENCRYPT_MODE);
System.out.println("加密后密文 :"+new String(change1));
byte [] change2 = pbeEncryption(change1, password, salt, Cipher.DECRYPT_MODE);
System.out.println("解密后 :"+new String(change2));
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
分享到:
相关推荐
Java加密技术(三)——PBE算法 Java加密技术(四)——非对称加密算法RSA Java加密技术(五)——非对称加密算法的由来DH Java加密技术(六)——数字签名算法DSA Java加密技术(七)——非对称加密算法最高级ECC ...
除了DES,我们还知道有DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法——PBE
java 文件加密解密 DES PBE RSA DH DSA ECC 等算法代码,如有需要可直接下载
PBE算法是对称加密算法的综合算法,常见算法PBEWithMD5AndDES,使用MD5和DES算法构建了PBE算法。将盐附加在口令上,通过消息摘要算法经过迭代获得构建密钥的基本材料,构建密钥后使用对称加密算法进行加密解密。 ...
对称加密算法PBE(Java).rar NetBeans环境可运行 对称加密算法PBE(Java).rar NetBeans环境可运行
DES PBE RSA DH DSA ECC 等算法代码
java的PBEWithMD5AndDES加密 C#的PBEWithMD5AndDES加密
PBE 加密实例,加密后用base64转码.密文具有一定的时效性,时间可自定义
Android基于密码的加密(PBE)实现。.zip
赝势(pseudopotential),或有效势(effective potential),是指在对能带结构进行数值计算时所引入的一个虚拟的势。引入赝势有助于实现一个复杂的系统的近似计算。事实上,赝势近似法是正交平面波...pbe是其中的一种
java加密技术 与单向加密算法MD5&SHA;&MAC; 对称加密算法DES&AES; PBE 算法
复杂的对称加密(DES、PBE)、非对称加密算法: ● DES(Data Encryption Standard,数据加密算法) ● PBE(Password-based encryption,基于密码验证) ● RSA(算法的名字以发明者的名字命名:Ron Rivest, ...
主要介绍了JAVA对称加密算法PBE定义与用法,结合实例形式分析了JAVA对称加密算法PBE的概念、原理、定义及使用方法,需要的朋友可以参考下
VASP赝势文件PAW PBE,我们在做DFT计算时必须要用到的最新的VASP最新赝势文件,配合VASPKIT1.00可以给我们的模型自动生成POTCAR文件不用查阅资料自己写代码了
基于PolarisBiosEditor1.7.4添加了对WX7100显卡的支持,修改 北极星架构的vbios参数,可以改功耗,显存频率,核心频率等等。
Pharo 开发文档,需要好好阅读 Pharo by Example Andrew P. Black Stéphane Ducasse Oscar Nierstrasz Damien Pollet with Damien Cassou and Marcus Denker Version of 2009-10-28
检测更多类型的内存并应用合适的时序(与PBE 1.6.7相比),增加了对H5GQ4H24AJ的支持 自动欠压,超频,降频(省电选项) 与库存相比,提供最大的哈希值提升,因为100%的性能仍然需要手动调整内存时钟和核心电压,...
聚苯醚基于性能的工程应用PBE是一个开源研究应用程序,可用于评估地震情况下建筑物的性能。 该应用程序专注于通过决策变量量化建筑性能。 用户可以在此应用中表征结构模型,损伤和损失模型以及地震危险模型。 所有...
TCL乐华PLE90P-2E-81-PBE042-PW2液晶电视维修图纸
Java Jct 加密解密工具包源码,WDSsoft免费源代码,java加密解密编程常用工具包 JCT 1.0,作者吴东升 常蕴秋,BlowfishTool.java... PBETool.java封装同PBE(基于口令的加密)算法有关的方法,可用使用PBE算法加密和解密