`
liulanghan110
  • 浏览: 1063882 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

对称加密之基于口令的加密解密

    博客分类:
  • JAVA
F# 
阅读更多

代码如下:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Random;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;

public class test1 {

	// 基于口令的加密
	public void PBEEnc(String s, String password) throws Exception {
		char[] passwd = password.toCharArray();
		PBEKeySpec pbks = new PBEKeySpec(passwd);
		SecretKeyFactory kf = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
		SecretKey k = kf.generateSecret(pbks);
		byte[] salt = new byte[8];
		Random r = new Random();
		r.nextBytes(salt);
		Cipher cp = Cipher.getInstance("PBEWithMD5AndDES");
		PBEParameterSpec ps = new PBEParameterSpec(salt, 1000);
		cp.init(Cipher.ENCRYPT_MODE, k, ps);
		byte ptext[] = s.getBytes("UTF8");
		byte ctext[] = cp.doFinal(ptext);
		// 将盐和加密结果合并在一起保存为密文
		FileOutputStream f = new FileOutputStream("PBEEnc.dat");
		f.write(salt);
		f.write(ctext);
		// 打印加密结果
		System.out.println("加密后密文:"+new String(ctext));

	}

	// 基于口令的解密
	public void PBEDec(String password) throws Exception {
		char[] passwd = password.toCharArray();
		PBEKeySpec pbks = new PBEKeySpec(passwd);
		SecretKeyFactory kf = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
		SecretKey k = kf.generateSecret(pbks);
		byte[] salt = new byte[8];
		FileInputStream f = new FileInputStream("PBEEnc.dat");
		f.read(salt);
		int num = f.available();
		byte[] ctext = new byte[num];
		f.read(ctext);
		Cipher cp = Cipher.getInstance("PBEWithMD5AndDES");

		PBEParameterSpec ps = new PBEParameterSpec(salt, 1000);
		cp.init(Cipher.DECRYPT_MODE, k, ps);
		byte ptext[] = cp.doFinal(ctext);
		System.out.println("解密后字符串:"+new String(ptext));
	}

	public static void main(String args[]) throws Exception {
		String str = "Hello World!";
		String passwd = "123456";
		test1 t = new test1();
		System.out.println("加密前原文:"+str);
		t.PBEEnc(str,passwd);
		t.PBEDec(passwd);
	}
}
 
分享到:
评论

相关推荐

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

    将盐附加在口令上,通过消息摘要算法经过迭代获得构建密钥的基本材料,构建密钥后使用对称加密算法进行加密解密。 算法/密钥长度/默认密钥长度: 1.PBEWithMD5AndDES/56/56 2.PBEWithMD5AndTripleDES/112,168/168 ...

    Java Jct 加密解密工具包源码.rar

    WDSsoft免费源代码,java加密解密编程常用工具包 JCT 1.0,作者吴东升 常蕴秋,BlowfishTool.java封装同Blowfish对称加密算法有关的方法,包括了使用创建Blowfish密码,使用Blowfish加密、解密, 使用PBE(基于口令的...

    完全掌握加密解密实战超级手册.z01

    41214.5.2 解除ZIP文件口令 41314.5.3 实现WinRAR自加密 41314.5.4 解除RAR文件密码 41414.6 加密解密EXE文件 41514.6.1 用ASPack加密EXE文件 41514.6.2 用tElock加密EXE文件 41714.6.3 为EXE文件加口令 41914.7 ...

    完全掌握加密解密实战超级手册.zip02

    第二个压缩包加密解密前言第1章 初识加密解密技术 11.1 加密解密技术基础 21.1.1 密码学简述 21.1.2 常用汇编语言命令 21.1.3 破解密码的常用方式 41.1.4 壳的作用和分类 51.2 文件读写与动态链接库文件 61.2.1 INI...

    Java加密与解密的艺术

    文件校验2096.8 小结211第7章初等数据加密—对称加密算法2137.1 对称加密算法简述2137.2 数据加密标准—DES 2147.3 三重DES—DESede 2227.4 高级数据加密标准—AES 2277.5 国际数据加密标准—IDEA 2327.6 基于口令...

    Java加密与解密的艺术配书源代码

    文件校验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 ...

    计算机网络安全试题-《网络安全与管理(第二版)》网络安全试题(2).doc

    使用公开密钥密码体制对称加密密码体制的密钥进行加密后的通信 D. 对称密钥交换的安全信道是通过公开密钥密码体制来保证的 10. 在通信过程中,只采用数字签名可以解决( )等问题。 A. 数据完整性 B. 数据的抗...

    计算机网络安全试题-《网络安全与管理(第二版)》网络安全试题(1).doc

    使用公开密钥密码体制对称加密密码体制的密钥进行加密后的通信 D. 对称密钥交换的安全信道是通过公开密钥密码体制来保证的 10. 在通信过程中,只采用数字签名可以解决( )等问题。 A. 数据完整性 B. 数据的抗...

    【9A文】计算机网络安全试题-《网络安全与管理(第二版)》网络安全试题.doc

    使用公开密钥密码体制对称加密密码体制的密钥进行加密后的通信 D.对称密钥交换的安全信道是通过公开密钥密码体制来保证的 10.在通信过程中,只采用数字签名可以解决()等问题。 A.数据完整性 B.数据的抗抵赖性 ...

    一个基于Vue和springboot+mybatisplus实现的文件云盘管理系统+源代码+文档说明

    - 对文件进行对称加密存储到文件系统,禁止明文存储文件 【 *对称加密* *密钥管理(如何安全存储对称加密密钥)* *对称加密密文的PADDING问题* 】 - 系统对加密后文件进行数字签名 【 *数字签名(多种签名工作模式...

    黄淮学院\考试题\2010-2011

    A、加密包括对称加密和非对称加密两种 B、信息隐藏是加密的一种方法 C、如果没有信息加密的密钥,只要知道加密程序的细节就可以对信息进行加密 D、密钥的位数越多,信息的安全性就越高 可以认为数据的加密和解密是...

    计算机网络安全试题-《网络安全与管理》网络安全试题.docx

    对称加密算法的密钥易于管理 加解密双方使用同样的密钥 DES算法属于对称加密算法 D .相对于非对称加密算法,加解密处理速度比较快 相对于对称加密算法,非对称密钥加密算法( ) A .加密数据的速率较低 更适合于现有...

    《计算机网络安全》试题及答案.docx

    加密技术不能实现:( D ) 数据信息的完整性 基于密码技术的身份认证 机密文件加密 基于IP头信息的包过滤 所谓加密是指将一个信息经过( )及加密函数转换,变成无意义的密文,而接受方则将此密文经过解密函数、( ...

    安全技术课程设计基于python的安全即时通讯系统.zip

    消息加解密:采用D-H体制协商加密秘钥,用对称密码AES算法进行加解密。 消息摘要:使用MD5算法实现消息摘要认证功能,确保发送消息的完整性。 用户未读消息提醒:红点标注未读消息数目,并按最后发送消息时间排列...

    安全技术课程设计基于python的安全即时通讯系统全部资料.zip

    消息加解密:采用D-H体制协商加密秘钥,用对称密码AES算法进行加解密。消息摘要:使用MD5算法实现消息摘要认证功能,确保发送消息的完整性。用户未读消息提醒:红点标注未读消息数目,并按最后发送消息时间排列好友...

    网络金融安全.pptx

    加密技术 加密技术种类 1 对称加密 2 非对称加密 网络金融安全全文共85页,当前为第14页。 加 密 技 术 对称密钥加密技术 也称密钥密码加密技术、私有密钥加密技术 特征 加密密钥和解密密钥相同,即: Ke=Kd=K 网络...

    网络安全试题(1).doc

    A RSA和对称加密算法 B Diffie-Hellman 和传统加密算法 C Elgamal 和传统加密算法 D RSA和 Elgamal 6. 在对称密钥系统中,依据加密方式的不一样又可分为: A. 分组密码方式和密钥序列方式 B. 分组密码方式和序列...

    网络安全试题完整版.docx

    A RSA和对称加密算法 B Diffie-Hellman和传统加密算法 C Elgamal和传统加密算法 D RSA和Elgamal 在对称密钥体制中,根据加密方式的不同又可分为: A. 分组密码方式和密钥序列方式 B. 分组密码方式和序列密码方式 C....

    网络安全作业题.doc

    和对称加密算法 . 和传统加密算法 . 和传统加密算法 . 和 6. 在对称密钥体制中,根据加密方式的不同又可分为:( ) . 分组密码方式和密钥序列方式 . 分组密码方式和序列密码方式 . 序列密码方式和数据分组方式 . ...

    基于python的安全即时通讯系统源码+数据库+详细项目说明(课程设计项目).zip

    消息加解密:采用D-H体制协商加密秘钥,用对称密码AES算法进行加解密。 7. 消息摘要:使用MD5算法实现消息摘要认证功能,确保发送消息的完整性。 8. 用户未读消息提醒:红点标注未读消息数目,并按最后发送消息...

Global site tag (gtag.js) - Google Analytics