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中常用的几种加密算法,包括但不限于DES、PBE、RSA、DH、DSA和ECC等,并提供部分示例代码以加深理解。 #### 二、基本概念 在深入讨论...
PBE算法是对称加密算法的综合算法,常见算法PBEWithMD5AndDES,使用MD5和DES算法构建了PBE算法。将盐附加在口令上,通过消息摘要算法经过迭代获得构建密钥的基本材料,构建密钥后使用对称加密算法进行加密解密。 ...
PBE(Password-Based Encryption,基于密码加密)是一种对称加密技术,它的主要特点是利用用户提供的密码作为加密和解密的密钥。与传统的对称加密算法(如DES、3DES、AES、Blowfish、RC2和RC4)相比,PBE在安全性上...
对称加密算法是一种常见的数据加密技术,它使用相同的密钥进行加密和解密。在Java中,Password-Based Encryption(PBE)是对称加密的一种特殊形式,它基于密码来生成加密密钥,增强了安全性。PBE的主要优点是它允许...
在Java编程中,加密技术是保护信息安全的关键工具。本文将主要介绍几种常见的加密解密算法,包括DES、PBE、RSA、DH、DSA以及ECC,并提供简单的代码示例。 首先,我们来看基本的单向加密算法。这些算法主要用于生成...
**Java与C#的PBE加密** PBE(Password-Based Encryption)基于密码的加密是一种常见的加密方式,它结合了密钥派生函数(PBKDF)和对称加密算法,如DES(Data Encryption Standard),用于保护数据的安全。在Java和...
总的来说,Java加密技术提供了丰富的加密选项,PBE则提供了一种基于用户密码的简便加密方式,适合在各种场景下保护敏感数据。然而,使用加密技术时,必须时刻关注算法的安全性和最新安全实践,确保数据的长期安全性...
接着,使用`javax.crypto.Cipher`进行加密和解密操作,选择如AES(Advanced Encryption Standard)这样的对称加密算法,并指定PBE算法,如`PBEWithMD5AndTripleDES`、`PBEWithSHA1AndDESede`或者更现代的`...
PBE 加密实例,加密后用base64转码.密文具有一定的时效性,时间可自定义
《Polaris Bios Editor 1.7.4.1:...然而,这也要求用户具备一定的技术知识,并在操作过程中保持谨慎,以确保设备的稳定运行。对于那些寻求极限性能或希望针对特定应用优化硬件的人来说,PBE无疑是一个极具价值的资源。
标题中的“VASP赝势文件PAW PBE”是指用于VASP(Vienna Ab initio Simulation Package)软件进行第一性原理量子力学计算的一种特定类型的赝势库。在DFT(密度泛函理论)计算中,赝势是模拟原子核与电子相互作用的一...
本文将深入探讨几种常见的加密算法——DES、AES、PBE、DH、RSA以及ElGamal,并结合DataServlet实例来阐述如何在实际应用中使用这些算法。 首先,DES(Data Encryption Standard)是一种对称加密算法,使用56位的...
在Java编程中,加密技术是确保数据安全的重要手段,主要用于保护敏感信息免受未经授权的访问。Java提供了丰富的类库来支持各种加密算法,包括单向加密(哈希函数)和双向加密(对称与非对称加密)。本篇文章将主要...
Java加密技术是保护数据安全的重要工具,广泛应用于网络通信、数据存储、数字签名等领域。本资源包涵盖了Java中常见的加密算法和技术,包括基础的哈希算法、对称加密、非对称加密以及证书签名和SSL/TLS协议。下面将...
赝势(pseudopotential),或有效势(effective potential),是指在对能带结构进行数值计算时所引入的一个虚拟的势。引入赝势有助于实现一个复杂的系统的近似计算。事实上,赝势近似法是正交平面波...pbe是其中的一种
在Java编程中,加密技术是确保信息安全的关键组成部分。本文将探讨几种常见的加密算法,包括单向加密和对称及非对称加密算法。首先,我们来看基础的单向加密算法,如BASE64、MD5、SHA和HMAC。 **BASE64** 是一种...
JAVA对称加密算法PBE定义与用法实例分析 JAVA对称加密算法PBE(Password Based Encryption,即基于口令加密)是一种常用的加密算法,它通过将口令转换为密钥,然后使用该密钥对数据进行加密。PBE算法优点在于可以...
Java加密技术是Java编程语言中用于保障数据安全的一系列加密方法和技术,它包括了单向加密算法、对称加密算法、非对称加密算法以及加密算法的高级应用如数字签名和数字证书等。本文将详细介绍这些加密技术,并结合...