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 要求密钥长度为 128
kg.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;
}
}
Java code lib aes 加解密的更多相关文章
- Java中的AES加解密工具类:AESUtils
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...
- C#与java中的AES加解密互解算法
一.C#版AES加解密算法 public class AESCode { public string Key { get; set; } public string Encrypt(string va ...
- Java中的AES加解密
直接上代码,Base64使用的是Java8的方法,如没有,替换即可 KEY:即密码 IV:即偏移量,可自订,十六位 加密方式:AES/CBC/PKCS5Padding,128位加密 如果想用256位和 ...
- AES加解密异常java.security.InvalidKeyException: Illegal key size
AES加解密异常 Java后台AES解密,抛出异常如下:java.security.InvalidKeyException: Illegal key size Illegal key size or ...
- Java、C#双语版配套AES加解密示例
这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解 ...
- C# RSA加解密与验签,AES加解密,以及与JAVA平台的密文加解密
前言: RSA算法是利用公钥与密钥对数据进行加密验证的一种算法.一般是拿私钥对数据进行签名,公钥发给友商,将数据及签名一同发给友商,友商利用公钥对签名进行验证.也可以使用公钥对数据加密,然后用私钥对数 ...
- 转载:Java、C#双语版配套AES加解密示例
转载,原文出处 http://www.cnblogs.com/lzrabbit/p/3639503.html 这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己 ...
- 记一次Java AES 加解密 对应C# AES加解密 的一波三折
最近在跟三方对接 对方采用AES加解密 作为一个资深neter Ctrl CV 是我最大的优点 所以我义正言辞的问他们要了demo java demo代码: public class EncryptD ...
- java AES加解密
AES加解密工具类 package com.yan.demo; import org.apache.commons.lang3.StringUtils; import sun.misc.BASE64D ...
- aes加解密 Illegal key size
做aes加密时,发生一个奇怪的错误,在本地环境是好的,发布到测试环境就出问题, java.security.InvalidKeyException: Illegal key size 想到本地环境之前 ...
随机推荐
- Windows_Linux系统环境中搭建私有云直播流媒体服务
有很多时候,我们需要直播的流媒体服务,不希望用别人的,希望可以走自己的私有网络.那么,如何快捷的在本地,或是自己的云端服务器搭建一套私有的流媒体服务呢? LiveQing流媒体中的云端直播模块提供了这 ...
- CMake构建学习笔记23-SQLite库的构建
1. 构建思路 在前文中构建了大量的库包程序(参看CMake构建学习笔记-目录)之后,可以总结一下在Windows下使用脚本构建程序的办法: 使用CMake构建.这是目前最通用最流行的构建方式,大部分 ...
- tabBar选择不同item设置标题不同颜色
转载请注明出处!!! 在开发中常常遇到带tabBar的应用,这些应用一般都是只有一个选中颜色,但在开发中也会遇到选择不同item选中颜色不一致的情况,这时要如何解决呢?方法一:不设置item titl ...
- 仿照豆包实现 Prompt 变量模板输入框
先前在使用豆包的Web版时,发现在"帮我写作"模块中用以输入Prompt的模板输入框非常实用,既可以保留模板输入的优势,来调优指定的写作方向,又能够不失灵活地自由编辑.其新对话的输 ...
- 不卷参数卷应用,OPPO用致善定义AI手机
24年,全球智能手机会有一个转折点:市场整体大盘温和回暖,华为强势回归,市场格局很有可能会被改写.更重要的是,AI大模型将在智能终端落地,这将会开启智能手机的新产业周期:变数增加. 什么样的手机,能成 ...
- 关于Win10 Penetration系统内置kali虚拟机WSL报错的解决方法
关于Win10 Penetration系统内置kali虚拟机WSL报错的解决方法: Win10 Penetration下载地址:https://pan.baidu.com/s/16b4_j9wuK_8 ...
- AI降噪、实时响应、闭环治理的政务数据安全管理方案 ——全知科技与教育部学位与研究生教育发展中心合作案例
概要:在国家数字化转型与政务治理现代化的背景下,教育部学位与研究生教育发展中心(以下简称"学位中心")携手全知科技,构建了一套以 AI降噪.实时响应与闭环治理为核心的政务数据安全管 ...
- Win2008服务端连不上10060
程序在本机(Win7)上没问题 放在Win2008就连不上 网络组件是本团队开发的.用本团队的网络组件的demo也不行. 下载了一个工具TCP调试助手(V1.9).exe ,也不行. 换了几个端口也不 ...
- 安装openvas时候的报错 bash: openvas-setup: command not found 和 ERROR: The default postgresql version is not 13 required by libgvmd
由于kali官方默认没有安装openvas,但是kali源中有,需要我们使用apt命令手动安装. 错误一 kali@kali:~$ openvas-setupbash: openvas-setup: ...
- 常见问题解决 --- PFX 文件转换为 Nginx 可用的证书文件
以下是适用于 Windows 系统的详细步骤,将 PFX 文件转换为 Nginx 可用的证书文件并配置 Nginx: 步骤 1:安装 OpenSSL1. 下载 OpenSSL for Windows: ...