• 大小: 1.54MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-21
  • 语言: Java
  • 标签: AES256  

资源简介

高性能AES256对称加解密,兼容Java、IOS、Android,带注释和使用方法。不再需要下载额外的文件了,小白式使用

资源截图

代码片段和文件信息

import java.io.UnsupportedEncodingException;
import java.security.Key;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

import com.sun.org.apache.xerces.internal.impl.dv.util.base64;

public class AES256Encryption{ 
/*
 *密钥算法
 * java6支持56位密钥,bouncycastle支持64位 
 */
public static final String KEY_ALGORITHM=“AES“; 
/**
 * 加密/解密算法/工作模式/填充方式
 * JAVA6 支持PKCS5PADDING填充方式
 * Bouncy castle支持PKCS7Padding填充方式
 */
public static final String CIPHER_ALGORITHM=“AES/ECB/PKCS7Padding“; 
/*
 * 生成密钥,java6只支持56位密钥,bouncycastle支持64位密钥
 * @return byte[] 二进制密钥
 */
public static String initkey() throws Exception{
//实例化密钥生成器 
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
KeyGenerator kg=KeyGenerator.getInstance(KEY_ALGORITHM “BC“); 
//初始化密钥生成器,AES要求密钥长度为128位、192位、256位 
kg.init(256);
//           kg.init(128);
//生成密钥 
SecretKey secretKey=kg.generateKey(); 
//获取二进制密钥编码形式 
return base64.encode(secretKey.getEncoded());
//为了便于测试,这里我把key写死了,如果大家需要自动生成,可用上面注释掉的代码
// return new byte[] { 0x08 0x08 0x04 0x0b 0x02 0x0f 0x0b 0x0c
// 0x01 0x03 0x09 0x07 0x0c 0x03 0x07 0x0a 0x04 0x0f
// 0x06 0x0f 0x0e 0x09 0x05 0x01 0x0a 0x0a 0x01 0x09
// 0x06 0x07 0x09 0x0d };
}
/**
 * 转换密钥
 * @param key 二进制密钥
 * @return Key 密钥
 * */ 
public static Key toKey(byte[] key) throws Exception{
//实例化DES密钥 
//生成密钥 
SecretKey secretKey=new SecretKeySpec(keyKEY_ALGORITHM); 
return secretKey;
}
/**
 * 加密数据
 * @param data 待加密数据
 * @param key 密钥
 * @return String 加密后的数据
 * */
public static String encrypt(String dataString key) throws Exception{
byte[] keys = base64.decode(key);
//还原密钥
Key k=toKey(keys);
/**
 * 实例化
 * 使用 PKCS7PADDING 填充方式,按如下方式实现就是调用bouncycastle组件实现
 * Cipher.getInstance(CIPHER_ALGORITHM“BC“)
 */
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
Cipher cipher=Cipher.getInstance(CIPHER_ALGORITHM “BC“);
//初始化,设置为加密模式
cipher.init(Cipher.ENCRYPT_MODE k);
//执行操作
return base64.encode(cipher.doFinal(data.getBytes()));
}
/**
 * 解密数据
 * @param data 待解密数据
 * @param key 密钥
 * @return byte[] 解密后的数据
 * */
public static String decrypt(String dataString key) throws Exception{
byte[] datas = base64.decode(data);
byte[] keys = base64.decode(key);
//欢迎密钥
Key k =toKey(keys);
/**
 * 实例化
 * 使用 PKCS7PADDING 填充方式,按如下方式实现就是调用bouncycastle组件实现
 * Cipher.getInstance(CIPHER_ALGORITHM“BC“)
 */
Cipher cipher=Cipher.getInstance(CIPHER_ALGORITHM);
//初始化,设置为解密模式
cipher.init(Cipher.DECRYPT_MODE k);
//执行操作
return new String(cipher.doFinal(datas));
}
/**
 * @param args
 * @throws UnsupportedEncodingException
 * @throws Exception 
 */
public static void main(String[] args) thr

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4060  2015-03-31 20:18  高性能AES256对称加解密,兼容Java、IOS、Android\AES256Encryption.java

     文件        115  2015-03-31 20:20  高性能AES256对称加解密,兼容Java、IOS、Android\使用方法.txt

     文件       2481  2006-11-17 10:10  高性能AES256对称加解密,兼容Java、IOS、Android\替换jdk下jre下lib下security的文件\local_policy.jar

     文件       2465  2006-11-17 10:10  高性能AES256对称加解密,兼容Java、IOS、Android\替换jdk下jre下lib下security的文件\US_export_policy.jar

     文件    1876535  2015-03-26 19:44  高性能AES256对称加解密,兼容Java、IOS、Android\需要导入的包\bcprov-jdk16-146.jar

     目录          0  2015-03-31 20:18  高性能AES256对称加解密,兼容Java、IOS、Android\替换jdk下jre下lib下security的文件

     目录          0  2015-03-31 20:15  高性能AES256对称加解密,兼容Java、IOS、Android\需要导入的包

     目录          0  2015-03-31 20:19  高性能AES256对称加解密,兼容Java、IOS、Android

----------- ---------  ---------- -----  ----

              1885656                    8


评论

共有 条评论