1 加密

public static byte[] jiami() throws Exception

{

//密钥生成器

KeyGenerator key=KeyGenerator.getInstance("DESede");

/**初始化密钥生成器

* 该步骤一般指定密钥的长度。如果该步骤省略的话,

* 会根据算法自动使用默认的密钥长度。指定长度时,

* 若第一步密钥生成器使用的是“DES”算法,则密钥长度必须是56位;

* 若是“DESede”,则可以是112或168位,其中112位有效;若是“AES”,

* 可以是128, 192或256位;若是“Blowfish”,则可以是32至448之间可以被8整除的数;

* “HmacMD5”和“HmacSHA1”默认的密钥长度都是64个字节

*/

key.init(168);

//生成密钥

SecretKey secret=key.generateKey();

//生成一个密钥文件 miyao.bat 以后人家需要解密 你就提供他一个文件

FileOutputStream s=new FileOutputStream("c://miyao.bat");

ObjectOutputStream st=new ObjectOutputStream(s);

st.writeObject(secret);

//工厂模式获取Cipher实例 密码器

Cipher cp=Cipher.getInstance("DESede");

//初始化cipher ENCRYPT_MODE表示加密DECRYPT_MODE解密  后面一个参数是密钥

cp.init(Cipher.ENCRYPT_MODE, secret);

//定义一个明文

String pwd="liaomin999";

//获取字符串的utf-8字节码

byte[] by=pwd.getBytes("utf-8");

//对字节码机密 miby就是加密后的字节码

byte[] miby=cp.doFinal(by);

//获取密文字符串

return miby;

}

2解密

public static String jiemi(byte[] miwen) throws Exception

{

//通过提供的密钥文件 获取密钥对象 进行解密

FileInputStream s=new FileInputStream("c://miyao.bat");

ObjectInputStream st=new ObjectInputStream(s);

SecretKey secret=(SecretKey)st.readObject();

//工厂模式获取Cipher实例 密码器

Cipher cp=Cipher.getInstance("DESede");

//初始化cipher ENCRYPT_MODE表示加密DECRYPT_MODE解密  后面一个参数是密钥

cp.init(Cipher.DECRYPT_MODE, secret);

//对密文字节码进行解密 如果密码写入文件可以使用文件流读写成一个数组

byte[] miby=cp.doFinal(miwen);

//获取密文字符串

String minwen=new String(miby,"utf-8");

return minwen;

}

public static void main(String[] args) throws Exception {

byte[] miwen=jiami();

String minwen=jiemi(miwen);

System.out.println(minwen);

}

java 生成对称密钥_Java中创建对称密钥的代码相关推荐

  1. Java生成随机数原理_Java中随机数的产生方式与原理详解

    Java中随机数的产生方式与原理 查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0- ...

  2. java 生成pdf文件_Java 中HTTP响应数据生成PDF,PDF文件的读取

    将HTTP响应数据生成PDF,这一步的话,就比较坑,浪费了好多时间,查了很多资料,也是我想把它记录下来的主要原因, 废话少说,先说踩的坑 1.区分字符流.字节流 这里可以百度一下,但是简言之就是: j ...

  3. java 生成多叉树_java中多叉树(tree)的生成与显示 | 学步园

    先看看多叉树的表示吧. 一. 多叉树的表示: 由于要表示多个孩子,不能像二叉树那样一个leftchild,一个rightchild.当然你也可以选择采用孩子兄弟表示法来将多叉树转化成二叉树.但java ...

  4. java jceks 密钥_Java中不同类型的密钥库(Keystore) – 概述

    阅读: 877 密钥库是用于存储加密密钥和证书的存储工具 ,最常用于SSL通信,以证明服务器和客户端的身份.密钥库可以是文件或硬件设备.有三种类型的条目可以存储在密钥库中,取决于密钥库的类型,这三种类 ...

  5. java string对象创建对象_Java String 创建了几个对象

    我们首先来看一段代码: Java代码 String str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢 ...

  6. Java:在网络路径中创建文件

    应用场景 使用Java语言在网络路径中创建文件. 实现 本地路径 首先在本地路径中创建文件的代码是这样的. import java.io.*; import java.text.CompactNumb ...

  7. 关于《机器学习实战》中创建决策树的核心代码分析

       关于<机器学习实战>中创建决策树的核心代码分析                 SIAT  nyk          2017年10月21日星期六 一.源码内容 def create ...

  8. java 导出mdb文件_Java中Java生成mdb文件工具类

    package com.util; /**  * Java生成mdb文件[MS Access文件]  * 1. 在ClassPath下存一个空的blank.mdb. (也就是在你的项目中包含一个空白的 ...

  9. java文件不存在就创建_Java中创建并写文件的5种方式

    阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到最新文章了.每天都有分享.完全是免费订阅,请放心关注.注:本文转载自网络,不代表本平台立场,仅供读者参 ...

最新文章

  1. 基于Pytorch对YOLOV5 进行简易实现
  2. 如何提高数据安全性与可用性——行云管家堡垒机
  3. 4-曲线拐点模型分析
  4. reactinput聚焦事件_React focus 事件的坑
  5. 出差在外,无法随时随地查看报表?那是因为你还不知道移动端报表
  6. 某个目录下产品根据创建时间下架
  7. mongdo通用类(C#版)
  8. 长跑常用必知的关键字及100条跑步的建议
  9. Linux服务器多线程编程
  10. 项目管理学习——PMP 5A高分通过备考经验分享
  11. Topaz DeNoise AI 3.7 人工智能降噪
  12. 常见的测试用例设计方法8---正交试验法
  13. 中职计算机应用基础表格制作说课稿,表格制作说课稿.doc
  14. 谷歌神经网络机器翻译NMT:人人可利用TensorFlow快速建立翻译模型
  15. 河南省网络安全高校战队联盟CTF训练营- misc04-音频隐写
  16. 全局变量和静态变量以及内存堆栈的关系
  17. [小说]魔王冢(楔子)
  18. 单片机毕业设计 STM32自动泊车系统 - 智能小车 自动停车
  19. oracle hr 密码修改,Oracle 11g用户修改密码及加锁解锁功能实例代码
  20. 观《逻辑思维 -- 时间的朋友》跨年演讲

热门文章

  1. CodeForces 776D 2-SAT
  2. 正大国际期货:巴菲特旗下伯克希尔•哈撒韦三季度持仓
  3. 4.6 曲线拟合的最小二乘法
  4. win10怎么连接使用蓝牙适配器?
  5. Simlink与PX4硬件在环仿真(HIL)实现
  6. python123绘制五角星,Python第八课 绘制五角星1.0
  7. jquery-美女相册案例
  8. cesium——飞行定位
  9. postgres 源码解析33 进程间通信--1
  10. 微信小程序-开发实战(二)