Java Cryptographic Extension (JCE) 框架的核心应用

 

本文简单介绍了JCE框架的核心应用!

javax.crypto.Cipher此类为加密和解密提供密码功能。它构成了 Java Cryptographic Extension (JCE) 框架的核心。为创建 Cipher 对象,应用程序调用 Cipher 的 getInstance 方法并将所请求转换 的名称传递给它。还可以指定提供者的名称(可选)。

转换 是一个字符串,它描述为产生某种输出而在给定的输入上执行的操作(或一组操作)。转换始终包括加密算法的名称(例如,DES),后面可能跟有一个反馈模式和填充方案。

package thtf.com.cn.client;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.security.Key;
import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Properties;

import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

//JCE应用
public class MainEncrypt {

 static String keyFile = "c:/key.xml";

 static Properties property = getProperties();

 Cipher ecipher;

 Cipher dcipher;

 private final String JDBCPROPERTIES_PATH = "socket_jdbc.properties";

 /**
  * 生成密钥。
  *
  */
 public static void saveDesKey() {
  try {

   keyFile = property.getProperty("keyFile");
   SecureRandom sr = new SecureRandom();
   // 为我们选择的DES算法生成一个KeyGenerator对象
   KeyGenerator kg = KeyGenerator.getInstance("DES");
   kg.init(sr);
   FileOutputStream fos = new FileOutputStream(keyFile);
   ObjectOutputStream oos = new ObjectOutputStream(fos);
   // 生成密钥
   SecretKey key = kg.generateKey();
   oos.writeObject

时间: 2024-10-22 00:23:49

Java Cryptographic Extension (JCE) 框架的核心应用的相关文章

Java企业应用系统框架的比较与选择

摘 要 目前流行的Java企业应用系统框架种类繁多,为了使开发人员正确选择系统架构从而提高Java企业应用的开发效率,首先针对基于EJB和基于POJOs的较为流行的几种框架分别进行了概述,然后对这些框架从表现层.业务逻辑层和持久层的实现细节进行了对比,总结了Java企业应用系统框架选择需要侧重考虑因素,得到了基于EJB的框架和基于POJOs的框架分别适用的范围. 关键词 Java企业应用系统框架:EJB3.0:Spring:Hibernate 引言 EJB的体系结构是J2EE的基础和核心,J2E

Java字节码修改框架ASM

字节码相对Java的意义类似汇编相对C的意义,底层了解的越多越深入,程序就越神奇,一切想法皆有可能实现.学习了下字节码框架ASM,总结分享下: API概述. 一.ASM库提供了两类API接口模型来产生或者修改类字节码: (1)核心API: 基于事件,每个事件代表类的一个元素,如头事件.方法事件.字段事件等.特点是更快耗费更少的内存.(2)树型API: 基于对象树状结构,字段方法等都可以看做对象树的一部分.使用相对简单,但耗费内存. 二.API包结构大致如下: (1)事件.解析器.生产器类API在

关于java开发hbase的框架

问题描述 关于java开发hbase的框架 刚接触hbase,需要java客户端的编程.目前之了解到hbase客户端的API的编写.就是get,put之类的层次.但以往开发关系型数据库的时候都有很多框架.请问,有经验的朋友是如何快速开发基于hbase的程序的?谢谢?比如是用什么可以使用sql语言来查询之类的.谢谢

java struts2-怎样利用Java 中的struts2框架实现数据库中用户登录功能?

问题描述 怎样利用Java 中的struts2框架实现数据库中用户登录功能? 在Action中LoginAction怎样写? 配置文件中怎样写? 总体实现能够使数据库中已经存在的用户凭自己的密码与用户名登录成功呢?数据库是Oracle数据库.

在Java中用类装载框架控制类加载

摘要 通过构建一个能够把Java类装载隔离到一个指定的jar文件中的类装载组件容器框架,你可以确保运行时刻会装载你期望的组件版本. Java的类装载框架强有力且具有灵活性.它允许应用程序存取类库而不必链接到静态的"include"文件.代之的是,它能够从指定位置装载包含库类和资源的档案文件,例如由CLASSPATH环境变量所定义的目录和网络位置.由系统来动态地解析对类和资源的运行时刻参考,从而简化了更新和版本发行.然而,每一个库都有其自己的依赖性集合-并且由开发者和发布人员来保证他们的

websocket即时通讯java SpringMVC mybatis 后台框架 集成代码生成器开发利器

A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势D 集成安全权限框架shiro  Shiro 是一个用 Java 语言

java使用poi开源框架生成excel文件并对其进行加密登入用户名若为汉字则出现乱码

问题描述 java使用poi开源框架生成excel文件并对其进行加密登入用户名若为汉字则出现乱码 public static byte[] encryptExcel(byte[] bytes String password String userName) { byte[] enExcelBytes = null; try { // 创建一个工作薄 HSSFWorkbook workbook = new HSSFWorkbook(new ByteArrayInputStream(bytes));

tomcat启动报错-java开发使用struts2框架后,启动tomcat会出现异常,希望大家帮帮忙。

问题描述 java开发使用struts2框架后,启动tomcat会出现异常,希望大家帮帮忙. comcat版本 6.0.30 struts2 jar包 struts2-core-2.1.8.1.jar org.xml.sax.SAXParseException: The element type "servlet-class" must be terminated by the matching end-tag "". at com.sun.org.apache.x

反射 注解-Java利用反射执行框架注入类的非静态方法

问题描述 Java利用反射执行框架注入类的非静态方法 之前对代码做优化,利用了反射去执行指定类的指定方法: public static JsonResultVO callMethod(Class<?> className String methodName Class<?>[] paramClass Object[] param) { JsonResultVO resultVO = new JsonResultVO(); try { Method m = className.get