博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AES加密--适用于RC2、RC4和Blowfish
阅读量:6991 次
发布时间:2019-06-27

本文共 1277 字,大约阅读时间需要 4 分钟。

package 
test;
import 
java.security.GeneralSecurityException;
import 
java.security.Key;
import 
javax.crypto.Cipher;
import 
javax.crypto.KeyGenerator;
import 
javax.crypto.SecretKey;
import 
javax.crypto.spec.SecretKeySpec;
public 
class 
AESCoder {
        
public 
static 
final 
String 
KEY_ALGORITHM
= 
"AES"
;
       
        
public 
static 
final 
String 
CIPHER_ALGORITHM
= 
"AES/EBC/PKCS5Padding"
;
       
        
//密钥算法
        
private 
static 
Key toKey(
byte
[] key){
              SecretKey secretkey = 
new 
SecretKeySpec(key,
KEY_ALGORITHM
);
               
return 
secretkey;
       }
       
        
public 
static 
byte
[] decrypt(
byte
[] data, 
byte
[] key) 
throws 
Exception, GeneralSecurityException{
              Key k= toKey(key);
              Cipher cipher=Cipher. getInstance(
CIPHER_ALGORITHM
);
              cipher.init(Cipher. 
DECRYPT_MODE
, k);
               
return 
cipher.doFinal(data);
       }
       
        
public 
static 
byte
[] encrytp(
byte
[] data, 
byte
[] key) 
throws 
Exception, GeneralSecurityException{
              
              Key k= toKey(key);
              
              Cipher cipher=Cipher. getInstance(
CIPHER_ALGORITHM
);
              
              cipher.init(Cipher. 
ENCRYPT_MODE
, k);
               
return 
cipher.doFinal(data);
       }
       
        
public 
static 
byte
[] initKey() 
throws 
Exception{
              KeyGenerator kg=KeyGenerator. getInstance(
KEY_ALGORITHM
);
              kg.init(256);
              SecretKey secretKey=kg.generateKey();
               
//获取密钥的二进制编码形式
               
return 
secretKey.getEncoded();
       }
}
对密钥规范的要求降低了,无需实现密钥规范类。

转载于:https://www.cnblogs.com/littlefishxu/p/3969182.html

你可能感兴趣的文章
leetcode-53-Maximum Subarray(动态规划详解)
查看>>
Android中删除照片操作
查看>>
评论列表显示及排序,个人中心显示
查看>>
一道面试题 js数组去重
查看>>
Unity Get Thread Content Failed
查看>>
删除数组中的元素
查看>>
慕课网--mysql开发技巧一 学习笔记
查看>>
什么是JavaScript闭包?
查看>>
架构风格:微服务
查看>>
iOS开发之--调用打电话,发邮件,发短信的系统功能的代码
查看>>
前端框架VUE----对象的单体模式
查看>>
管理簇+创建簇索引+修改簇+删除簇
查看>>
New Concept English three(17)
查看>>
New Concept English three (53)
查看>>
CSS Hack
查看>>
Polysh实现多服务器批量执行shell
查看>>
矩阵快速幂 HDU 4565 So Easy!(简单?才怪!)
查看>>
jquery ajax中error返回错误解决办法
查看>>
maven核心,pom.xml详解
查看>>
Python2处理字符集问题
查看>>