`
liulanghan110
  • 浏览: 1076771 次
  • 性别: 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 ...

    c#加密解密之口令加密Exe源码.rar

    口令加密通常指的是基于口令的加密(PBE,Password-Based Encryption),它结合了口令和随机盐值生成加密密钥。这种方法的一个优势是用户只需记住一个口令,而不是单独的密钥。在C#中,可以使用System.Security....

    c#加密解密之口令加密BAT源码.rar

    本资源"c#加密解密之口令加密BAT源码.rar"显然提供了一个关于使用C#进行基于口令(或密码)的加密技术的示例源代码。下面我们将详细探讨口令加密的概念以及如何在C#中实现。 口令加密通常指的是基于用户提供的口令...

    CS系统加解密_文件口令加密_cs下加密流程_

    综上所述,"CS系统加解密_文件口令加密_cs下加密流程_"涉及了C#环境下的文件加密与解密技术,包括选择合适的加密算法、生成和管理密钥、实施加密解密流程,以及密码策略的制定。同时,还提及了jd-gui工具在逆向工程...

    C#390-口令加密Exe源代码

    1. **密码学基础**:在密码学中,口令加密通常涉及哈希函数、对称加密和非对称加密。哈希函数用于将明文口令转化为固定长度的散列值,如SHA256;对称加密如AES,使用同一密钥进行加密和解密;非对称加密如RSA,使用...

    C# 口令加密Exe 实例源码(加密解密)

    C#作为一款强大的.NET框架下的编程语言,提供了多种安全措施来保护应用程序,其中之一就是口令加密。本实例源码着重展示了如何使用C#进行口令加密和解密操作,这对于创建安全的用户登录系统或保护敏感数据至关重要。...

    RSA 前端加密C#后端解密(两套可用程序)

    RSA是一种非对称加密算法,它是公钥密码学的一个重要里程碑。这个算法由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。非对称加密与对称加密不同,它使用一对密钥——公钥和私钥。公钥可以...

    C#加密机制实例源码-口令加密Exe

    本实例源码主要关注口令加密,这是一种基于用户输入口令进行数据加密的方法。下面我们将深入探讨C#中的加密机制以及口令加密Exe的具体实现。 C#内置了丰富的加密类库,如System.Security.Cryptography命名空间下的...

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

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

    密码学--让你精通加密解密

    在"密码学--让你精通加密解密"的学习资源中,我们可以深入探讨密码学的多个核心概念,包括对称加密、非对称加密、哈希函数、数字签名以及密钥管理和认证等关键知识点。 1. **对称加密**:如文件名中的"中国商用密码...

    C#加密机制实例源码-口令加密Exe_45.rar

    3. **口令加密**:口令加密通常指的是基于用户提供的口令(密码)生成加密密钥。这种方法的一个关键问题是口令的存储,应使用散列函数(如SHA-256)和加盐值进行存储,以增强安全性。 4. **对称加密与非对称加密**...

    论文研究-一种口令加密算法设计 .pdf

    本文将介绍口令加密算法的基本概念、口令攻击的方式、加密与解密的基础知识以及单向函数在口令加密中的应用。 首先,口令是用户与计算机系统进行身份验证的常用方法。然而,如果口令以明文形式存储或传输,它们很...

    文件加解密软件

    对称密钥加密使用相同的密钥进行加密和解密,适合大量数据的快速处理;而非对称密钥则需要一对密钥,加密用一个,解密用另一个,安全性更高,但计算复杂度较大。 在描述中提到,这种加密软件不仅适用于文档和文件夹...

    c# ras 加密解密 代码例子

    RAS是一种非对称加密算法,它包括一对密钥:公钥和私钥。公钥可以公开,用于加密数据;私钥则必须保密,用于解密数据。这种机制使得只有持有私钥的一方才能解密由公钥加密的数据,保证了数据的安全性。 在C#中,...

    C#加密机制实例源码-口令加密Exe(最低分分享)

    在描述中提到的“口令加密Exe”,可能就是使用了对称加密,通过用户的口令生成一个密钥来加密程序。 2. 非对称加密:如RSA,DSA(Digital Signature Algorithm)。非对称加密使用一对公钥和私钥,公钥用于加密,...

    C#加密机制实例源码-口令加密Exe_0520.rar

    这个“C#加密机制实例源码-口令加密Exe_0520.rar”压缩包文件很可能是包含了一组C#代码示例,用于演示如何使用密码对可执行程序(Exe)进行加密。下面我们将详细讨论C#中的加密机制和口令加密的概念。 1. **加密的...

    C#加密机制实例源码-口令加密Exe__0525.rar

    2. **口令加密**:在C#中,口令加密通常指的是基于口令的密钥派生函数(PBKDF2,Password-Based Key Derivation Function 2)。PBKDF2是一种从用户口令生成加密密钥的方法,它通过多次迭代增加破解难度。例如,可以...

    对文本进行加密和解密

    在IT领域,加密和解密是信息...随着技术的发展,未来的加密解密方法将更加智能和安全,例如量子密码学等新兴技术可能会改变现有的加密模式。总的来说,理解和掌握加密解密技术对于保障网络安全和个人隐私具有重要意义。

Global site tag (gtag.js) - Google Analytics