`
daibalusu
  • 浏览: 344133 次
文章分类
社区版块
存档分类
最新评论

java 对称加密——直接代码中加密

 
阅读更多

我夕

java中的安全简单点的来说就是关于数据的加密与解密的编程,数据的加密在程序中占据着很重要的一部分,特别是在扯到钱的方面时显得更重要。 数据的加密分为分为两大类即对称加密与非对称加密。

对称加密称为密钥加密,特点速度快,但加密和解密的钥匙必须相同,只有通信双方才能知道钥匙
非对称加密称为公钥加密,特点速度慢,加密和解密的钥匙不相同,某一个人持有私钥,任何人都可以知道公钥

接下来来做一个很简单的关于对称加密的例子,即对一串字符串进行加密然后打印出加密的数据,然后在对其解密输出。

package com.cipher.test;

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
/**
 * 
 * @ClassName: SimpleTest1
 * @Description: 简单的对称加密(一)
 * @author 我夕
 * @date 2012-5-15
 */
public class SimpleTest1 {

	/**
	 * @param args
	 * @throws BadPaddingException 
	 * @throws IllegalBlockSizeException 
	 * @throws NoSuchPaddingException 
	 * @throws NoSuchAlgorithmException 
	 * @throws InvalidKeyException 
	 */
	public static void main(String[] args) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, 
	IllegalBlockSizeException, BadPaddingException {
		// TODO Auto-generated method stub
		simplCipherTest();

	}
	//简单密钥加密
	public static void simplCipherTest() throws NoSuchAlgorithmException, NoSuchPaddingException, 
	InvalidKeyException, IllegalBlockSizeException, BadPaddingException{
		
		//创建Cipher的实例,AES是一个转换名称
		//有关标准转换名称的信息,请参见 Java Cryptography Architecture Reference Guide 的附录 A。
		Cipher cipher = Cipher.getInstance("AES");
		
		//产生key
		SecretKey key=KeyGenerator.getInstance("AES").generateKey();
		
		//初始化cipher,参数1是Cipher 的操作模式(ENCRYPT_MODE、DECRYPT_MODE、WRAP_MODE 或 UNWRAP_MODE),这里选加密模式
		//ENCRYPT_MODE,参数二是密钥key
		cipher.init(Cipher.ENCRYPT_MODE, key);
		
		//开始加密数据的操作
		cipher.update("hello java !".getBytes());
		byte[] result=cipher.doFinal();//这里返回结果打印出来,便于调试
		System.out.println("数据加密的结果:"+new String(result));
		
		//这里进行解密操作
		cipher.init(Cipher.DECRYPT_MODE, key);
		System.out.println("数据解密的结果:"+new String(cipher.doFinal(result)));
		
	}

}


运行结果:

从运行结果可以看出,得到我们想要的结果了,hello java被加密后就是一堆乱码,根本看不出什么东西出来,只有进行解密后才能看到其原始真正的内容。

分享到:
评论

相关推荐

    java实现非对称加密(RSA)(csdn)————程序.pdf

    java实现非对称加密(RSA)(csdn)————程序

    Java加密技术介绍.docx

    Java加密技术(二)——对称加密算法DES&AES Java加密技术(三)——PBE算法 Java加密技术(四)——非对称加密算法RSA Java加密技术(五)——非对称加密算法的由来DH Java加密技术(六)——数字签名算法DSA Java...

    常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES.pdf

    常用加密算法的java实现总结,常用加密算法的java实现总结,常用加密算法的java实现总结,常用加密算法的java实现总结,常用加密算法的java实现总结

    lib_coder.zip

    3、初等数据加密——对称加密算法——用于保证数据保密性服务 4、高等数据加密——非对称加密算法——用于保证数据保密性服务 5、带密钥的消息摘要算法——数据签名算法——用于抗否认性服务( 电子商务系统应有效...

    Java源码包100个设计实例.zip

    Java利用DES私钥对称加密代码实例 Java加密解密工具集 JCT v1.0源码包.rar Java半透明图片实现的步骤及源代码.rar Java右键弹出菜单源码 Java吃豆子游戏源代码.rar Java图片加水印,支持旋转和透明度设置 Java圆形...

    java源码包---java 源码 大量 实例

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA上百实例源码以及开源项目源代码

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    java源码包2

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    一个完整可用的证书签名(验签),加密(解密)java源码

    System.out.println("\n公钥加密——私钥解密"); byte[] encrypt = CertificateUtils.encryptByPublicKey(data.getBytes("utf-8"), certificatePath); String encode = base64Encoding(encrypt); System.out...

    JAVA上百实例源码以及开源项目

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    Java中常用的加密算法及其实现原理详解-保护信息的铠甲,静默守护你的隐私

    Java中常用的加密算法及其实现原理详解——保护信息的铠甲,静默守护你的隐私 内容简介: 1、对称加密算法 2、非对称加密算法 3、散列算法 4、数字签名算法 5、应用场景

    java源码包4

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    java源码包3

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    毕业设计 :ASP基于RSA的数字签名的设计与实现(源代码)

    1)按要求生成非对称密钥——公钥和私钥; 2)按任意写入的的消息字符串(明文信息)生成所需要的消息摘要MD; 3)在本设计中用产生的私钥d根据RSA算法的加密原理对所生成的消息摘要进行加密运算,得到数字签名; 4)...

    ICH.BouncyCastle

    本系列文章主要介绍如何在 .NET Core 中使用非对称加密算法、编码算法、消息摘要算法、签名算法、对称加密算法、国密算法等一系列算法,如有错误之处,还请大家批评指正。 本系列文章旨在引导大家能快速、轻松的了解...

    leetcode答案-Data-Structure-and-Algorithms:数据结构与算法

    对称加密与非对称加密: 阮一峰——图解SSL/TLS协议: 深入理解HTTPS原理、过程与实践: HTTP/2 研发者社区http2.0解释: 理解http2.0(掘金): UDP协议(简单理解即可,与TCP区别,有哪方面优势) UDP详解: ...

    asp.net知识库

    ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题...

Global site tag (gtag.js) - Google Analytics