`
彭自荣
  • 浏览: 15637 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java 加密解密 示例

阅读更多
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.security.Key;
import java.security.MessageDigest;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;

public class Demo {
	public static void main(String args[]) {
		String password = "administrator";
		try {
			Demo.PrivEncrypt(password,"t.obj");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 
	 * @param oldStr
	 *            要加密的串
	 * @param keyFile
	 *            私有key所在的文件路径
	 * @throws Exception
	 */
	public static void PrivEncrypt(String oldStr,String keyFile) throws Exception {
		System.out.println("原始:"+oldStr);
		byte[] plainText = oldStr.getBytes("GBK");
		Key key = getPriveKey(keyFile);
		// 获得一个私鈅加密类Cipher,ECB是加密方式,PKCS5Padding是填充方法
		Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
		
		cipher.init(Cipher.ENCRYPT_MODE, key);// 使用私鈅加密
		byte[] cipherText = cipher.doFinal(plainText);
		System.out.println("加密:"+new String(cipherText, "UTF8"));
		
		cipher.init(Cipher.DECRYPT_MODE, key);// 使用私钥解密
		byte[] newPlainText = cipher.doFinal(cipherText);
		System.out.println("解密:"+new String(newPlainText, "UTF8"));
	}

	// 把Key 写到文件中:生成一个私有Key对象,保存在文件中
	public static void setPriveKey(String file) {
		FileOutputStream fos;
		try {
			fos = new FileOutputStream(file);
			KeyGenerator keyGen = KeyGenerator.getInstance("DES");
			keyGen.init(128);
			Key key = keyGen.generateKey();// 生成私钥Key
			ObjectOutputStream oos = new ObjectOutputStream(fos);
			oos.writeObject(key);
			oos.close();
		} catch (Exception e1) {
			e1.printStackTrace();
		}
	}
	// 从文件中读Key:客户端可以根据管理员提供的私钥Key文件提取Key对象
	public static Key getPriveKey(String file) throws Exception {
		FileInputStream fis = new FileInputStream(file);
		ObjectInputStream ois = new ObjectInputStream(fis);
		Key key = (Key) ois.readObject();
		return key;
	}
}
/* 运行结果:
 * 原始:administrator 
 * 加密:!Y????I?? ??R;?
 * 解密:administrator
 */
  • code.rar (1.1 KB)
  • 描述: 源代码
  • 下载次数: 909
分享到:
评论
3 楼 RonQi 2011-08-05  
刚开始了解java的加密技术,执行了楼主的代码,一开始报错,不知道是否由于编译器等不一样所致。改了几个地方,我这里可以执行了:

    [1] main里面首先执行setPriveKey("t.obj");
    [2] setPriveKey中keyGen.init(56);//128改为56;
    [3] PrivEncrypt中Cipher.getInstance("AES/ECB/PKCS5Padding");把AES改为DES;

具体原因还不了解,还需要进一步学习
2 楼 gaozi131 2009-08-27  
感谢楼主的介绍  我对java加密方面还真是新手  学习啦
1 楼 jason34 2008-11-11  
很感谢您的代码啊.我们能交个朋友不?QQ:10046417

相关推荐

    java加密解密示例分享

    想要创造一个只有自己能看懂的文件吗?那就是对数据加密吧,下面分享一个java的数据加密与解密示例

    java使用Hex编码解码实现Aes加密解密功能示例

    主要介绍了java使用Hex编码解码实现Aes加密解密功能,结合完整实例形式分析了Aes加密解密功能的定义与使用方法,需要的朋友可以参考下

    Java实现的RSA加密解密算法示例

    主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了java RAS加密解密算法的相关实现技巧,需要的朋友可以参考下

    Java中3DES加密解密示例(封装byte数组16进制互转)

    Java中3DES加密解密示例(封装byte数组16进制互转)

    java实现的RC4加密解密算法示例

    主要介绍了java实现的RC4加密解密算法,结合具体实例形式分析了java RC4加密解密算法的实现与使用技巧,需要的朋友可以参考下

    Java加密与解密的艺术.mobi

    若要构建安全坚固的Java企业级应用,不仅要深入了解每种算法的原理并将它们综合运用,而且还要悟透Java加密与解密技术的本质。全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关...

    SM2加密解密java代码完整示例

    国产加密算法SM2加密解密java代码完整示例。里面有加密解密的示例,生成秘钥的示例,本人亲测有效。默认maven环境编译。若无maven环境,里面也上传了相关依赖jar包。

    JAVA加密与解密的艺术--第2版.rar

    全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、非...

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

    全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、...

    Java加密与解密的艺术

    , 全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、...

    Java加密解密和数字签名完整代码示例

    主要介绍了Java加密解密和数字签名完整代码示例,具有一定参考价值,需要的朋友可以了解下。

    RSA算法JAVA公钥加密,C#私钥解密

    可以直接运行成功的RSA加密解密示例 JAVA端采用公钥加密,服务端C#采用私钥解密。

    Java加密与解密的艺术 第二版(清晰+书签+完整版).pdf

    Java加密与解密的艺术 第二版(清晰+书签+完整版).pdf真正第二版,《Java加密与解密的艺术(第2版)》是Java安全领域公认的标杆之作,被奉为每一位Java开发工程师必读的著作之一。由资深专家撰写,第1版4年来畅销不...

    Java AES256加密解密示例代码

    主要介绍了Java AES256加密解密示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java AES128加密解密

    Java AES128加密解密 示例源码(AES-ECB-PKCS7Padding)

    sm2加密解密java示例.zip

    sm2加密解密java示例,包含加密。解密、基于bc的包实现的,用maven实现的;

    RAS前端加密,JAVA后端解密。实现加密传送(补充了一个JS)

    实现前端jsencrypt加密,后端用java进行解密,然后用md5进行登录,非对称加密算法实现。包含代码示例代码详解

Global site tag (gtag.js) - Google Analytics