`

java安全2

    博客分类:
  • java
 
阅读更多
package com.ngsn.security;


import java.io.ByteArrayOutputStream;
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.InvalidKeyException;
import java.security.Key;
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;

/**
 * 对称加密(加密解密的密钥一样)
 * @author John.Yao
 *
 */
public class SecretKeyTest1 {
	
	public static void main(String[] args) throws Exception{
	//	SecretEncrypt();
		
		SecretDecrypt();
		
	}
	/**
	 * 加密方法
	 * 将加密的密钥保存在zxx_secret.key文件中
	 * 将加密的数据保存在zxx.data文件中
	 * @throws Exception
	 */
	private static void SecretEncrypt() throws Exception{
		//Cipher  此类为加密和解密提供密码功能
		Cipher cipher = Cipher.getInstance("AES");
		//根据AES的加密方法生成一个密钥
		SecretKey key = KeyGenerator.getInstance("AES").generateKey();
		
		FileOutputStream fosKey = new FileOutputStream("zxx_secret.key");
		ObjectOutputStream oosSecretKey = new ObjectOutputStream(fosKey);
		//将密钥保存到zxx_secret.key文件中
		oosSecretKey.writeObject(key);
		oosSecretKey.close();
		fosKey.close();
		
		
		//初始化
		//Cipher.ENCRYPT_MODE 为加密模式
		//key 为加密的密钥
		cipher.init(Cipher.ENCRYPT_MODE,key);
		//对byte[] 进行加密,返回一个加密后的byte[]
		byte[] result = cipher.doFinal("abc".getBytes());
		System.out.println("result----->"+new String(result));
		
		FileOutputStream fosData = new FileOutputStream("zxx.data");
		fosData.write(result);
		fosData.close();
	}
	/**
	 * 解密方法
	 * @throws Exception
	 */
	private static void SecretDecrypt()throws Exception{
		//Cipher  此类为加密和解密提供密码功能
		Cipher cipher = Cipher.getInstance("AES");
		//从zxx_secret.key文件中得到key
		FileInputStream fisKey = new FileInputStream("zxx_secret.key");
		ObjectInputStream ois = new ObjectInputStream(fisKey);
		Key key = (Key)ois.readObject();
		ois.close();
		fisKey.close();
		//解密
		//初始化
		cipher.init(Cipher.DECRYPT_MODE, key);
		//从zxx.data文件中得到加密的数据
		FileInputStream fis = new FileInputStream("zxx.data");
		byte[] buffer = new byte[1024];
		int len = 0;
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		while((len = fis.read(buffer)) != -1){
			bos.write(buffer, 0, len);
		}
		//从输出流中得到byte[]的加密数据
		byte[] result = bos.toByteArray();
		fis.close();
		bos.close();
		//对加密的数据进行解密
		byte[] b = cipher.doFinal(result);
		System.out.println("b------>"+new String(b));
		

	}
}
分享到:
评论

相关推荐

    P神-Java安全漫谈

    Java安全是指在Java编程和应用开发过程中采取的一系列措施,旨在保护Java应用程序、系统和数据免受恶意攻击、数据泄露和其他安全威胁的影响。Java安全主要涉及以下几个方面: 代码安全性:Java提供了强大的安全机制...

    Java安全编码标准

    资源名称:Java安全编码标准内容简介:《java安全编码标准》是java安全编码领域最权威、最全面、最详细的著作,java之父james a. gosling推荐。不仅从语言角度系统而详细地阐述java安全编码的要素、标准、规范和最佳...

    Java安全开发规范

    Java的安全开发技术规范以及安全开发注意要点

    java 安全编程指南

    Java安全编程指南旨在帮助开发者在使用Java编程时遵循最佳的安全实践,以保护应用程序免受潜在威胁。Java作为一种跨平台的编程语言,其安全性是其核心特性之一,但如果不正确地编写代码,可能会引入安全隐患。本指南...

    JAVA2平台安全技术

    1. **Java安全模型**: Java安全模型基于类加载器和安全沙箱的概念。类加载器负责加载类到Java虚拟机(JVM)中,而安全沙箱则限制了未经验证的代码的执行权限。这确保了即使有恶意代码,也只在其特定的安全上下文中...

    Java2平台安全技术

    安全模型是Java安全的基础,它定义了程序执行的环境和限制。在Java中,所有代码都被分为不同的信任等级,如本地代码(完全信任)和网络下载的代码(部分信任)。类加载器则负责加载类到JVM中,并根据其来源确定其...

    Java安全性编程实例

    Java安全性编程实例主要涵盖的是Java平台上的安全机制和实践,这对于任何希望构建可靠、安全的Java应用程序的开发者来说都是至关重要的。Java作为一种跨平台的编程语言,其安全性是其核心特性之一,它提供了多种机制...

    Java2平台安全技术-结构,API设计和实现

    IBM相关的资料Java2平台安全技术-结构,API设计和实现Java2平台安全技术-结构,API设计和实现Java2平台安全技术-结构,API设计和实现Java2平台安全技术-结构,API设计和实现Java2平台安全技术-结构,API设计和实现Java2...

    Java安全技术

    Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全技术Java安全...

    Java安全性编程源代码

    Java安全性编程是Java平台的核心特性之一,它旨在保护应用程序免受恶意代码的攻击,并确保敏感信息的安全处理。这个压缩包包含的源代码很可能是不同章节关于Java安全性的实例和示例,涵盖了广泛的议题。让我们逐一...

    Java 2 平台安全技术——结构, API 设计和实现

    Java 2平台安全技术是Java开发中的核心组成部分,它为应用程序提供了一套强大的安全机制...这本书“Java 2平台安全技术——结构, API设计和实现”将帮助读者深入理解这一领域的各个方面,是Java安全开发者的宝贵资源。

    Java安全性编程指南

    Java安全性编程指南是Java开发者必备的知识领域,它涵盖了在开发Java应用程序时确保代码安全的一系列原则、最佳实践和工具。Java作为一个广泛使用的平台,其安全性对于保护用户数据、防止恶意攻击至关重要。本指南将...

    Java安全编码培训.pdf

    Java安全编码培训是针对Java开发人员进行的一项专业培训,旨在提升程序员在编写代码时对安全性问题的认识和能力,防止在软件开发过程中引入安全隐患。本次培训涵盖了安全编码的重要性和基本概念,包括安全编码考核...

    java安全性编程指南,JAVA安全性编程已成为当前JAVA编程者的主要课题,本资料是解决此类问题的权威资料。

    Java安全性编程是现代Java开发中不可或缺的一部分,尤其是在网络应用、移动设备和企业级系统中,保护用户数据和系统安全显得尤为重要。本指南旨在提供全面的Java安全编程实践和策略,帮助开发者构建更安全的Java应用...

    Java安全性编程指南(PDG)

    《Java安全性编程指南》是一本深入探讨如何在Java平台上实现安全编程的重要著作。该书针对的是那些希望构建安全、可靠的Java应用程序的开发者。在Java语言中,安全性是至关重要的,因为它的跨平台特性使得它成为了...

    java安全

    本文将深入探讨Java安全机制,主要包括Java安全模型、权限管理、加密技术以及相关的工具使用。 首先,Java安全模型是Java平台的核心组成部分,它提供了一种沙箱环境,限制了代码(特别是来自不可信来源的网络代码)...

    Java的安全机制研究与分析

    2. **类加载器机制**:类加载器是Java安全机制的重要组成部分。Java拥有层次化的类加载器体系,包括启动类加载器、标准扩展类加载器、路径加载器和网络类加载器。通过“双亲委派链模式”,类加载器能够确保只有可信...

    Java安全手册

    《Java安全手册》是一本专注于Java编程语言在安全领域的深度指南。这本手册详细阐述了如何在开发Java应用时确保代码的安全性,防止各种类型的攻击,包括但不限于注入攻击、跨站脚本攻击(XSS)、跨站请求伪造(CSRF...

    Java安全漫谈 - 01.反射篇(1)1

    Java 反射机制安全漫谈 Java 反射机制是 Java 语言中的一种强大功能,允许程序在运行时访问和修改类的信息。然而,这种功能也引入了安全隐患。本文将讨论 Java 反射机制的安全问题,重点介绍反射机制的基本概念、...

    java安全性编程教案(java)

    Java安全性编程是Java开发中的重要领域,特别是在网络应用技术中,确保代码安全是开发者必须面对的关键挑战。本教案将深入探讨Java平台的安全机制,通过实例讲解如何有效地进行安全性编程。 一、Java安全模型基础 ...

Global site tag (gtag.js) - Google Analytics