1.KeyGenerator的使用。

如下

static Key genKey(byte[] key){

//获取AES算法的KeyGenerator实例对象

KeyGenerator kg = KeyGenerator.getInstance("AES");

//获取SecureRandom对象

SecureRandom random = SecureRandom.getInstance("SHA1PRNG");

//设置种子

random.setSeed(key);

//初始化key生成器

kg.init(128, random);

//获取秘钥对象

SecretKey secretKey = kg.generateKey();

//获取秘钥字节数组

byte[] enCodeFormat = secretKey.getEncoded();

//返回使用AES秘钥加密的对象

return new SecretKeySpec(enCodeFormat,"AES");

}

2 MessageDigest类使用,

消息摘要是采用任意大小的数据并输出固定长度散列值的安全单向散列函数

javadoc中支持的算法有:

Every implementation of the Java platform is required to support

* the following standard {@code MessageDigest} algorithms:

*

*

{@code MD5}

*

{@code SHA-1}

*

{@code SHA-256}

*

但是java平台支持的摘要算法远远不止这些。

//MessageDigest对象初始化

MessageDigest md = MessageDigest.getInstance("MD5");

//摘要计算

byte[] result =  md.digest(byte[]  data)

SHA-256 加密返回的字节数组长度固定为32,一个字节长度是8位 ,32*8=256位,SHA256 算法的哈希值大小为 256 位。

以下两段代码的意思一样:

//转为两位的16进制

byte b = -5;

//将一个负数转化为256+b

Integer.toString(( b & 0xff) + 0x100, 16).subString(1)

//转为两位的16进制

String str;

String tempStr = (Integer.toHexString(b & 0xff));

if (tempStr.length() == 1) {

str = str + "0" + tempStr;

}

else {

str = str + tempStr;

}

java中的key,继续谈谈java中的Key相关推荐

  1. java构造函数的作用6_谈谈 java 中的构造函数

    本篇博文主要是为新手.对java语言感兴趣的人和那些没有系统学习过java基础知识的人进行一个总结,在文章中对构造函数进行了较为详细的说明和讨论,也包含了我个人对于java面向对象中构造函数的一些看法 ...

  2. android 代码中使用dp,简单谈谈Android中SP与DP的区别

    从一开始写Android程序,就被告知这些常识 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px.不同 ...

  3. 老鸟谈谈JAVA EE的学习

    老鸟谈谈JAVA EE的学习 老鸟谈谈JAVA EE的学习 因为出差和项目的原因,有将近一个月的时间没有更新博客了,今天终于得闲,和兄弟们分享一下JAVA EE的学习心得.书中带过,直入主题,下面我们 ...

  4. Java复习总结(二)Java SE 面试题

    Java SE基础知识 目录 Java SE 1. 请你谈谈Java中是如何支持正则表达式操作的? 2. 请你简单描述一下正则表达式及其用途. 3. 请你比较一下Java和JavaSciprt? 4. ...

  5. Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO

    Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...

  6. 谈谈JAVA中的安全发布

    谈谈JAVA中的安全发布 昨天看到一篇文章阐述技术类资料的"等级",看完之后很有共鸣.再加上最近在工作中越发觉得线程安全性的重要性和难以捉摸,又掏出了<Java并发编程实战& ...

  7. java map key是否存在_java中如何判断map集合中是否存在key

    有两种方法可以判断map集合中是否存在某个key. 方法1:直接使用java api提供的containsKey(): 方法2:循环遍历,逐个比较. java相关视频推荐:java视频 具体实现代码如 ...

  8. 谈谈java中遍历Map的几种方法

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...

  9. redistemplate hash 过期时间_完美!谈谈Java中时间控制的几种解决方案

    前言 需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失效.后台有定时任务在获取,但是偶尔会出现token失效,这是因为在获取的时候,定时任务正在跑,可 ...

最新文章

  1. javascript 内部函数的定义及调用
  2. android对应的java版本_Android Studio gradle插件版本和gradle版本对应关系
  3. JAVAWEB项目--模拟考试系统数据库设计与实现(二)
  4. ddos发包机原理_简单的DDOS发包学习思路大家可以在去写
  5. Spring点滴二:Spring Bean
  6. 有什么好一点的方法读jdk源码吗?
  7. java计算集合对称差
  8. c语言编程我爱你红色代码,C语言告白代码,一闪一闪亮晶晶~
  9. 机器人动力学-牛顿-欧拉方程
  10. R语言大数据分析之新闻文本数据分析
  11. 菜鸟教程首页制作html5
  12. 电脑里的html打不开,电脑网页打不开怎么回事,教您解决网页打不开的办法
  13. 支持向量机:Duality
  14. 学生成绩排名预测(DC)
  15. windows 10 安装 jdk15 教程
  16. dj eason2005mix慢摇版 亲爱的不要离开我铃声 dj eason2005mi...
  17. 结合GUI和simulink的三相电路谐波的检测与建模
  18. 数据监控预警系统,实现不同端信息推送
  19. c语言中的英语缩写,英文短信缩写:超实用总结(C开头)
  20. 【学习小记】狄利克雷卷积+杜教筛

热门文章

  1. xcode8 matlab,Xcode 8 最新版Instruments的使用教程
  2. tiup update
  3. Python计算机视觉第七章 图像搜索
  4. 音频制作的现状与发展趋势
  5. 通过发热量、辐射、风扇噪声等入侵物理隔离网络案例
  6. 【STM32F407】Note_01 STM32 编程环境搭建 -- Keil与VS code组合
  7. Chrome渲染分析之Rendering工具
  8. Web安全-旁注攻击
  9. PS基本用法工具介绍
  10. c语言编程vcwin7,vc++6.0 win7版