-
大小: 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文件
相关资源
- JS实现AES-GCM加密,java实现AES-GCM解密。
- 完美使用RSA2结合AES对数据进行加密兼
- aes加密算法 五种模式
- Android实现登录界面和功能
- RSA加密传输AES的key和iv js加密 java解
- 高性能AES256对称加解密,兼容Java、
- BouncyCastleProvider jar包
- Java使用winzipaes对zip文件的操作支持中
- android使用AES加密对文件进行前中后三
- android使用AES加密和解密文件
- java AES加密解密并有详细注释程序窗口
- AES加密解密JAVA实现带源码
- local_policy.jar和US_export_policy.jar java解密
- AES加密访问数据库连接
- c/c++ 与java互通 AES加密解密,算法EC
- Qt AES算法ECB模式 PKCS5Padding 128bit
- AESUtils实现了基于AES的ECB模式,选用了
- Android、Java、Web三端通用的RSA和AES工具
- AES加密解决了windows下正常,linux报错
- Java实现的AES/CBC/NoPadding方式实现的文
- Delphi7AES加密解密与JAVA互转默认128位
- RSA与AES混合加密算法的实现java版
- Java AES文件和文本加解密
- java、android、web三端通用的RSA和AES工具
- AESjava实现
- RSA+AES 加密工具类 Java
- 对称加密AES算法,前后端实现
- 简单实现AES-CBC-MAC算法
- AES+RSA加密解密js和java互通.zip
- AES加解密优化版,明文密文相互转换
评论
共有 条评论