JavaAES128对称加密算法实现
JavaAES128对称加密算法实现
在我们程序员日常工作中避免不了会接触一下有关于加密算法的需求,所以今天小编带来的是java中AES128对称算法的实现。
话不多少接下来代码搞起来----->
0、准备
首先呢,我们先把jar包准备好
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
1、对数据进行加密
public static String encrypt_by_aes(String datas) {return Base64.getEncoder().encodeToString(encrypt_by_aes(datas.getBytes(), DEFAULT_KEY));
}private static byte[] encrypt_by_aes(byte[] datas, byte[] key) {return calc_by_aes(Cipher.ENCRYPT_MODE, datas, key);
}
这里要说一下 “datas” 是我们需要加密的数据,byte[]字节数组类型。"key"为秘钥,这里秘钥也是byte[]字节数组类型。
如果我们的秘钥是这个样子:
1D926BD75DFC90D25EEE9286FECBEA9R
需要转成这个熊样:
private static final byte[] DEFAULT_KEY = new byte[] {0x1D, (byte) 0x92, 0x6B, (byte) 0xD7, 0x5D, (byte) 0xFC, (byte) 0x90, (byte) 0xD2, 0x5E, (byte) 0xEE, (byte) 0x92, (byte) 0x86, (byte) 0xFE, (byte) 0xCB, (byte) 0xEA, (byte) 0x9R};
好 接下来
private static byte[] calc_by_aes(int mode, byte[] datas, byte[] key) {if (datas == null || key == null || key.length != 16) {return null;}SecretKeySpec keySpec = new SecretKeySpec(key, "AES");try {Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(mode, keySpec);return cipher.doFinal(datas);} catch (Exception e) {return null;}
}
这个是调用的而公共方法
接着需要做数据填充,这里我使用的是PKCS7填充—>
public static final String bytesToHexString(byte[] bArray) {StringBuffer sb = new StringBuffer(bArray.length);String sTemp;for (int i = 0; i < bArray.length; i++) {sTemp = Integer.toHexString(0xFF & bArray[i]);if (sTemp.length() < 2)sb.append(0);sb.append(sTemp.toUpperCase());}return sb.toString();
}
最后补充一下,解密:
public static String decrypt_by_aes(String datas) {return new String(decrypt_by_aes(Base64.getDecoder().decode(datas), DEFAULT_KEY));
}private static byte[] decrypt_by_aes(byte[] datas, byte[] key) {return calc_by_aes(Cipher.DECRYPT_MODE, datas, key);
}
好,填充完毕后返回的字符串就是我们加密后的密文字符串
至此我们的数据加密就完成了。
JavaAES128对称加密算法实现相关推荐
- 对称加密算法AES之GCM模式简介及在OpenSSL中使用举例
AES(Advanced Encryption Standard)即高级加密标准,由美国国家标准和技术协会(NIST)于2000年公布,它是一种对称加密算法.关于AES的更多介绍可以参考:https: ...
- 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。
对称加密算法:DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES. 1.对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文 ...
- 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)...
2019独角兽企业重金招聘Python工程师标准>>> 数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊-- ...
- 程序员之网络安全系列(三):数据加密之对称加密算法
系列目录: 程序员之网络安全系列(一):为什么要关注网络安全? 程序员之网络安全系列(二):如何安全保存用户密码及哈希算法 程序员之网络安全系列(三):数据加密之对称加密算法 程序员之网络安全系列(四 ...
- 对称加密算法_技术分享丨这是一篇简单的小科普——什么是对称加密算法?(下)...
大家好~我是贾正经,又到了干货满满的技术分享趴啦~ 上期我们讲解了对称加密算法的小知识,并介绍了国密算法中SM4算法的原理.(上集回顾) 本期带大家了解一下分组密码的五个模式. 分组密码的模式 首先了 ...
- Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
[最简单的加密] 1.简单的概念 明文:加密前的信息 密文:机密后的信息 算法:加密或解密的算法 密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao) 2.简单的例子 ...
- 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)
数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们--帕蒂.道格.苏珊--每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4 ...
- Java 加密 AES 对称加密算法
版权声明:本文为博主原创文章,未经博主允许不得转载. [AES] 一种对称加密算法,DES的取代者. 加密相关文章见:Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES R ...
- php源码十六进制加密,php-简单对称加密算法和字符串与十六进制之间的互转函数,php-十六进制_PHP教程...
php-简单对称加密算法和字符串与十六进制之间的互转函数,php-十六进制 /** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param Str ...
最新文章
- OKR是什么?-源目标OKR
- C语言结构体例子 (一)
- 深入理解JVM-类加载器深入解析(3)
- TinyML与Tensor Flow Lite的关系
- vue+element 表格el-table显示数据加载中
- 【EPS精品教程】EPS2016三维测图版安装教程(附EPS2016安装包下载地址)
- 多备份与Symantec NBU备份软件对比
- win8更改计算机锁屏时间,win8如何设置电脑屏保时间设置方法
- 基于Spark的离线电影推荐
- Vim快捷键(一):文档操作与文本插入
- 计算机科学与技术导论结课报告,计算机科学与技术导论论文提纲范文模板 计算机科学与技术导论论文框架怎样写...
- 互联网思维之用户思维
- 数据防泄密产品实测对比
- 邮件服务器DNS设置-----MX、SPF、DKIM记录详解
- MinIO客户端mc使用
- 宏碁暗影骑士设置u盘启动教程
- SpringBoot之模板引擎
- 【智能优化算法-黑猩猩算法】基于增强型黑猩猩优化器算法求解单目标优化问题附matlab代码
- 【opencv初学者】2、视频的读取
- 百度搜狗360快速排名可以解决网站排名的哪些问题呢?
热门文章
- mPaaS扫一扫记录
- 几个 Python 编程小技巧
- 线程撕裂者3990x和5950x哪个好
- java gui的文本框_GUI编程笔记(java)07:GUI把文本框的值移到文本域案例
- 外部供电不稳定时准确测量ADC电压基于STM32L151最新HAL库实现方案
- 机器学习中正则化项L1和L2
- 共享新发展,九州云出席贵州省党政代表团杭州数字经济座谈会
- 已解决:Window11问题 8080、8081、8082端口占用问题 Port 808X was already in use.
- atof函数 C++用法
- L2之上的L3、L4,StarkWare的这个设想到底能否实现?