`

加密技术——PBE

pbe 
阅读更多
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 等算法代码

    在信息安全领域,加密技术是保障数据安全的关键手段之一。本文将详细介绍Java中常用的几种加密算法,包括但不限于DES、PBE、RSA、DH、DSA和ECC等,并提供部分示例代码以加深理解。 #### 二、基本概念 在深入讨论...

    PBE是一种基于口令的加密算法,使用口令代替其他对称加密算法中的密钥,其特点在于口令由用户自己掌管,不借助任何物理媒体;

    PBE算法是对称加密算法的综合算法,常见算法PBEWithMD5AndDES,使用MD5和DES算法构建了PBE算法。将盐附加在口令上,通过消息摘要算法经过迭代获得构建密钥的基本材料,构建密钥后使用对称加密算法进行加密解密。 ...

    PBE——Password-based encryption(基于密码加密)

    PBE(Password-Based Encryption,基于密码加密)是一种对称加密技术,它的主要特点是利用用户提供的密码作为加密和解密的密钥。与传统的对称加密算法(如DES、3DES、AES、Blowfish、RC2和RC4)相比,PBE在安全性上...

    对称加密算法PBE(Java).rar

    对称加密算法是一种常见的数据加密技术,它使用相同的密钥进行加密和解密。在Java中,Password-Based Encryption(PBE)是对称加密的一种特殊形式,它基于密码来生成加密密钥,增强了安全性。PBE的主要优点是它允许...

    ava加密解密 DES PBE RSA DH DSA ECC 等算法

    在Java编程中,加密技术是保护信息安全的关键工具。本文将主要介绍几种常见的加密解密算法,包括DES、PBE、RSA、DH、DSA以及ECC,并提供简单的代码示例。 首先,我们来看基本的单向加密算法。这些算法主要用于生成...

    java与C#的PBE加密

    **Java与C#的PBE加密** PBE(Password-Based Encryption)基于密码的加密是一种常见的加密方式,它结合了密钥派生函数(PBKDF)和对称加密算法,如DES(Data Encryption Standard),用于保护数据的安全。在Java和...

    Java加密技术

    总的来说,Java加密技术提供了丰富的加密选项,PBE则提供了一种基于用户密码的简便加密方式,适合在各种场景下保护敏感数据。然而,使用加密技术时,必须时刻关注算法的安全性和最新安全实践,确保数据的长期安全性...

    Android基于密码的加密(PBE)实现。.zip

    接着,使用`javax.crypto.Cipher`进行加密和解密操作,选择如AES(Advanced Encryption Standard)这样的对称加密算法,并指定PBE算法,如`PBEWithMD5AndTripleDES`、`PBEWithSHA1AndDESede`或者更现代的`...

    PBE 加密实例

    PBE 加密实例,加密后用base64转码.密文具有一定的时效性,时间可自定义

    PBE1.7.4.1.rar

    《Polaris Bios Editor 1.7.4.1:...然而,这也要求用户具备一定的技术知识,并在操作过程中保持谨慎,以确保设备的稳定运行。对于那些寻求极限性能或希望针对特定应用优化硬件的人来说,PBE无疑是一个极具价值的资源。

    VASP赝势文件PAW PBE

    标题中的“VASP赝势文件PAW PBE”是指用于VASP(Vienna Ab initio Simulation Package)软件进行第一性原理量子力学计算的一种特定类型的赝势库。在DFT(密度泛函理论)计算中,赝势是模拟原子核与电子相互作用的一...

    [JAVA加解密]DES,AES,PBE,DH,RSA,ElGamal等算法实现及DataServlet实例

    本文将深入探讨几种常见的加密算法——DES、AES、PBE、DH、RSA以及ElGamal,并结合DataServlet实例来阐述如何在实际应用中使用这些算法。 首先,DES(Data Encryption Standard)是一种对称加密算法,使用56位的...

    Java加密技术(一)

    在Java编程中,加密技术是确保数据安全的重要手段,主要用于保护敏感信息免受未经授权的访问。Java提供了丰富的类库来支持各种加密算法,包括单向加密(哈希函数)和双向加密(对称与非对称加密)。本篇文章将主要...

    java加密技术大全

    Java加密技术是保护数据安全的重要工具,广泛应用于网络通信、数据存储、数字签名等领域。本资源包涵盖了Java中常见的加密算法和技术,包括基础的哈希算法、对称加密、非对称加密以及证书签名和SSL/TLS协议。下面将...

    vasp第一性计算所需pbe赝势模型

    赝势(pseudopotential),或有效势(effective potential),是指在对能带结构进行数值计算时所引入的一个虚拟的势。引入赝势有助于实现一个复杂的系统的近似计算。事实上,赝势近似法是正交平面波...pbe是其中的一种

    JAVA加密技术.docx

    在Java编程中,加密技术是确保信息安全的关键组成部分。本文将探讨几种常见的加密算法,包括单向加密和对称及非对称加密算法。首先,我们来看基础的单向加密算法,如BASE64、MD5、SHA和HMAC。 **BASE64** 是一种...

    JAVA对称加密算法PBE定义与用法实例分析

    JAVA对称加密算法PBE定义与用法实例分析 JAVA对称加密算法PBE(Password Based Encryption,即基于口令加密)是一种常用的加密算法,它通过将口令转换为密钥,然后使用该密钥对数据进行加密。PBE算法优点在于可以...

    java加密技术

    Java加密技术是Java编程语言中用于保障数据安全的一系列加密方法和技术,它包括了单向加密算法、对称加密算法、非对称加密算法以及加密算法的高级应用如数字签名和数字证书等。本文将详细介绍这些加密技术,并结合...

Global site tag (gtag.js) - Google Analytics