`
wgchwgch
  • 浏览: 22153 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

基于口令的加密解密实现

JDK 
阅读更多
加密:
	        // 创建SHA1散列对象
	        MessageDigest md = MessageDigest.getInstance("SHA1");
	        // 散列密钥
	        md.update(password.getBytes());
	        // 获得DES密钥
	        DESKeySpec dks = new DESKeySpec(md.digest());
	        // 获得DES加密密钥工厂
	        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
	        // 生成加密密钥
	        SecretKey key = keyFactory.generateSecret(dks);
	        // 创建初始化向量对象
            IvParameterSpec iv = new IvParameterSpec(Decrypt.IV_8);
            AlgorithmParameterSpec paramSpec = iv;
            Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", "BC");
            cipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);  	
            byte[] res = cipher.doFinal(srcMessage.getBytes());

解密:
	        // 创建SHA1散列对象
	        MessageDigest md = MessageDigest.getInstance("SHA1");
	        // 散列密钥
	        md.update(password.getBytes());
	        // 获得DES密钥
	        DESKeySpec dks = new DESKeySpec(md.digest());
	        // 获得DES加密密钥工厂
	        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
	        // 生成加密密钥
	        SecretKey key = keyFactory.generateSecret(dks);
	        // 创建初始化向量对象
            IvParameterSpec iv = new IvParameterSpec(Decrypt.IV_8);
            AlgorithmParameterSpec paramSpec = iv;
            
            //PBEParameterSpec pbeSpec = new PBEParameterSpec(IV_8,1);
            Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", "BC");
            cipher.init(Cipher.DECRYPT_MODE, key, paramSpec);
            byte[] res = cipher.doFinal(Base64.decode(encMessage.getBytes()));
1
1
分享到:
评论
3 楼 pch272215690 2010-06-19  

// 创建初始化向量对象 
IvParameterSpec iv = new IvParameterSpec(Decrypt.IV_8);

Decrypt.IV_8是什么东西
2 楼 wgchwgch 2008-09-18  
MessageDigest是jdk自带的类库,引用一下即可。
1 楼 BarryWei 2008-09-10  
MessageDigest等这些类是哪里来的?楼主是不是可以写一个比较基础的教程或者说明。
这样更适合初学者吧。

相关推荐

Global site tag (gtag.js) - Google Analytics