Java code lib aes 加解密
Java aes 加解密
/*** Created by LvJianwei on 2018/2/8.*/import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import javax.xml.bind.DatatypeConverter; import java.security.NoSuchAlgorithmException; import java.util.Arrays;/*** @program: reflection* @description: AES* @author: LvJianwei* @create: 2018-02-08 15:07**/ public class AESDemo {public static void main(String[] args) {String key="i will always love you";byte[] keyBytes=initSecretKey();String plainText="have a nice day";System.out.println("plainText:"+plainText);byte[] encryptedBytes=encrypt(DEFAULT_CIPHER_ALGORITHM,keyBytes,KEY_ALGORITHM,plainText);System.out.println("encryptedText:"+Arrays.toString(encryptedBytes));byte[] decryptedBytes=decrypt(DEFAULT_CIPHER_ALGORITHM,keyBytes,KEY_ALGORITHM,encryptedBytes);System.out.println("decryptedText:"+new String(decryptedBytes));}/*** algorithm*/private static final String KEY_ALGORITHM = "AES";private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";/*** generate key* @return byte[] key* @throws Exception*/public static byte[] initSecretKey() {//返回生成指定算法的秘密密钥的 KeyGenerator 对象KeyGenerator kg = null;try {kg = KeyGenerator.getInstance(KEY_ALGORITHM);} catch (NoSuchAlgorithmException e) {e.printStackTrace();return new byte[0];}//初始化此密钥生成器,使其具有确定的密钥大小//AES 要求密钥长度为 128kg.init(128);//生成一个密钥SecretKey secretKey = kg.generateKey();return secretKey.getEncoded();}/*** AESEncrypt* @param cipherAlgorithm transformation* @param keyBytes key byte array* @param keyAlgorithm SecretKeySpec's algorithm* @param plainText text to be encrypted* @return*/public static byte[] encrypt(String cipherAlgorithm, byte[] keyBytes, String keyAlgorithm, String plainText) {try {Cipher cipher = Cipher.getInstance(cipherAlgorithm);String keyStr= DatatypeConverter.printBase64Binary(keyBytes);SecretKeySpec keySpec = new SecretKeySpec(keyBytes, keyAlgorithm);cipher.init(Cipher.ENCRYPT_MODE, keySpec);byte[] encyptedBytes = cipher.doFinal(plainText.getBytes());return encyptedBytes;} catch (Exception e) {e.printStackTrace();}return null;}/*** decrypt* @param cipherAlgorithm transformation* @param keyBytes key* @param keyAlgorithm SecretKeySpec's algorithm* @param encyptedBytes encypted byte array* @return*/public static byte[] decrypt(String cipherAlgorithm, byte[] keyBytes, String keyAlgorithm, byte[] encyptedBytes) {try {Cipher cipher = Cipher.getInstance(cipherAlgorithm);String keyStr= DatatypeConverter.printBase64Binary(keyBytes);SecretKeySpec keySpec = new SecretKeySpec(keyBytes, keyAlgorithm);cipher.init(Cipher.DECRYPT_MODE, keySpec);byte[] decryptedBytes = cipher.doFinal(encyptedBytes);return decryptedBytes;} catch (Exception e) {e.printStackTrace();}return null;} }
转载于:https://www.cnblogs.com/lvjianwei/p/8432679.html
Java code lib aes 加解密相关推荐
- Java RSA、AES加解密,Python RSA、AES加解密
需求 python服务发起加密http请求网关,网关验签解密后路由返回加密结果,python服务解密得到明文 请求加密 生成随机字符 s,[a-z][A-z][0-9] 16位 ,例如:s=2zQ6E ...
- java aes 工具类_Java中的AES加解密工具类:AESUtils
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...
- php aes 256 加解密,PHP完整的AES加解密算法使用及例子(256位)
依赖PHP自身的mcrypt扩展 class aes { // CRYPTO_CIPHER_BLOCK_SIZE 32 private $_secret_key = 'default_secret_k ...
- Java实现aes加解密
pom文件的依赖 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <depe ...
- 记一次Java AES 加解密 对应C# AES加解密 的一波三折
最近在跟三方对接 对方采用AES加解密 作为一个资深neter Ctrl CV 是我最大的优点 所以我义正言辞的问他们要了demo java demo代码: public class EncryptD ...
- Java使用AES加解密
Java使用AES加解密 目录 1.1生成密钥 1.2密钥的存储 1.3获取存储的密钥 1.4加解密 1.5使用存储的密钥进行加解密示例 AES是一种对称的加密算法,可基于相同的密钥进行加密和解密.J ...
- java aes ebc_Delphi XE2+标准AES加解密算法(AES/EBC,CBC/PKCS5Padding-base64)
[实例简介] 实现了AES/ECB/PKCS5Padding.AES/CBC/PKCS5Padding 密钥长度128/192/256bit,密钥0填充.是标准的AES算法,支持在线AES加解密网站互 ...
- 前端CryptoJS和Java后端数据互相加解密(AES)
目录 一.序言 二.关于前端CryptoJS 1.CryptoJS简单介绍 2.加密和填充模式选择 3.前端AES加解密示例 (1) cryptoutils工具类 (2) 测试用例 (3) 加解密后输 ...
- Java与Winform进行AES加解密数据传输的工具类与对应关系和示例
场景 Android+Java中使用Aes对称加密的工具类与使用: Android+Java中使用Aes对称加密的工具类与使用_霸道流氓气质的博客-CSDN博客 上面讲的Java与安卓进行数据传输时使 ...
最新文章
- linux下遇到的小问题与解决方法
- Python实战之logging模块使用详解
- 二、linux最小驱动
- linux symbol文件,LINUX EXPORT_SYMBOL_GPL及EXPORT_SYMBOL导出函数
- Spring Boot 应用监控:Actuator与 Admin
- 高科技的计算机作文600字,神奇的电脑_600字
- sql在线模拟器_力荐一款在线SQL模拟器
- mysql不能删除外键吗,MySQL不能删除外键约束所需的索引
- Spark初识-Spark基本架构概览使用
- mysql系统属性_mysql 显示表字段及mysql系统信息
- html浮动跟随鼠标,jQuery 图片跟随鼠标浮动
- TensorFlow函数:tf.ones
- LeetCode 116. Populating Next Right Pointers in Each Node
- jmp怎么做合并的箱线图_JMP和Minitab的图形分析
- 快速掌握Python的捷径-Python基础前传(1) 1
- u盘如何安装xp和linux,怎样从U盘安装Windows XP?
- vs2008中文版 下载
- OpenCV每日函数 几何图像变换模块 (8) remap函数
- Android肝帝战纪之字体图标库(iconify)的简单使用
- FINN(二)CNN,BNN及其硬件实现的背景知识
热门文章
- Django 的F查询与Q查询,事物
- [ python ] 正则表达式及re模块
- filter---用angularjs实现关键字高亮
- 安卓音频输出采样率_只有AirPods配有姓名吗?安卓的这些无线耳机也不错
- java des zero_android----Java DES加密算法工具类
- python继承 子类init_Python类继承:使用自己的和父的默认值和init方法进行动态子类初始化...
- linux虚拟网络设备--eth, tap/tun, veth-pair(九)
- linux进程--进程组、会话、守护进程(八)
- linux内核网络协议栈--数据接收流程图(五)
- 用计算机算出90除以6.28,用计算器计算:sin51°30′+ cos49°50′-tan46°10′的值是 .——青夏教育精英家教网——...