-
大小: 5KB文件类型: .java金币: 1下载: 0 次发布日期: 2021-06-03
- 语言: Java
- 标签: AES zeropadding
资源简介
AESUtil 实现了基于AES的ECB模式,选用了zeropadding填充,数据位为128 加上密码去加解密数据。
代码片段和文件信息
package com.thinta.testreadword;
import android.util.base64;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/*****************************************************
* 版权信息: 北京振中电子技术有限公司版权所有
* 创建作者: 郭志文
* 创建日期: 2018/11/14
* ****************************************************
* 更改记录: 更新人: 更新时间: 更新概要:
*
* ****************************************************
* 类功能说明:AES加解密工具类
* ****************************************************/
public class AESUtils {
private static final String KEY_ALGORITHM = “AES“;
private static final String DEFAULT_CIPHER_ALGORITHM = “AES/ECB/NoPadding“;//默认的加密算法
/**
* AES 加密操作
*
* @param content 待加密内容
* @param password 加密密码
* @return 返回base64转码后的加密数据
*/
public static String encrypt(String content String password) {
try {
Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);// 创建密码器
int blockSize = cipher.getBlockSize();
byte[] byteContent = content.getBytes();
int plaintextLength = byteContent.length;
if(plaintextLength % blockSize != 0)
{
plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
}
byte[] plaintext = new byte[plaintextLength];
System.arraycopy(byteContent 0 plaintext 0 byteContent.length);
int len = password.getBytes().length;
if(len % 16 != 0)
{
len = len + (16 - (len % 16));
}
byte[] newpass = new byte[len];
System.arraycopy(password.getBytes() 0 newpass 0 password.getBytes().length);
SecretKeySpec keySpec = new SecretKeySpec(newpass “AES“);
cipher.init(Cipher.ENCRYPT_MODE keySpec);// 初始化为加密模式的密码器
byte[] result = cipher.doFinal(plaintext);// 加密
// return base64.encodebase64String(result);//通过base64转码返回
return base64.encodeToString(resultbase64.DEFAULT);//通过base64转码返回
} catch (Exception ex) {
// Logger.getLogger(AesDec.class.getName()).log(Level.SEVERE null ex);
}
return null;
}
/**
* AES 解密操作
*
* @param content
* @param password
* @return
*/
public static String decrypt(String content
- 上一篇:java项目简历
- 下一篇:解决adb传输中文出现乱码的最新版adb.exe文件
相关资源
- AESjava实现
- RSA+AES 加密工具类 Java
- 对称加密AES算法,前后端实现
- 简单实现AES-CBC-MAC算法
- AES+RSA加密解密js和java互通.zip
- AES加解密优化版,明文密文相互转换
- C语言AES加密解密,CBC模式,256含测试
- Python AES和Java AES/ECB/PKCS5Padding互转
- AES算法Java实现
- 128位AES加密算法C语言实现
- Delphi与JAVA互加解密AES算法
- DES加解密ZEROPADDING执行验证无误
- AES 对所有格式文件加解密
- 一个采用AES算法的加密模块和调用V
- zip文件256bit的AES加密解密
- java使用AES加密/解密文件
- AES加解密JS文件
- AES For Delphi And Java V2.0.0.0.rar
- AES256加密工具类,及其所必须的jar包
- c++ AES 兼容 JAVA AES CBC PKCS5Padding C#
- UnlimitedJCEPolicy --JCE策略文件包含适用
- AES算法实现文件的加密解密(Java语言
- java MD5,AES及 六位随机码生成
- AESHelper 工具类
- 微信小程序 AES加密 ECB模式js文件
- Android-ndk-jni AES加解密 C++
- 基于openssl的AES256 的CBC模式的加解密处
- AESjava底层实现原理代码实现。。。。
- AES/DES 对称加密算法
-
AES+ba
se64加密解密工具类
评论
共有 条评论