BASE64Decoder替代类Base64
之前base64加密用的是sun公司的sun.misc.BASE64Encoder/BASE64Decoder,由于后面版本更新,sun公司被oracle公司收购,加密类BASE64Encoder被org.apache.commons.codec.binary.Base64替代了。
两者加密数据的结果其实是相同的
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sun.misc.BASE64Encoder;import com.alibaba.fastjson.JSONObject;public class TestEncode {private static final Logger logger = LoggerFactory.getLogger(TestEncode.class); public static void main(String[] args) throws Exception {JSONObject condition = new JSONObject();condition.put("payAmount", "1");condition.put("merchantCode", "XM01");condition.put("transDesc", "选择支付渠道");condition.put("bizNo", "dadad3333");condition.put("bizType", "76");condition.put("idType", "5");condition.put("accountName", "卫涵菡");condition.put("serialNo", "2");condition.put("idNo", "131124197907242963");String encryptKey = "abc";String result1 = aesEncrypt1(condition.toJSONString(),encryptKey);String result2 = aesEncrypt2(condition.toJSONString(),encryptKey);logger.info(result1);logger.info(result2);}public static String aesEncrypt1(String content, String encryptKey) throws Exception {logger.info("加密前的数据content={}",content);return base64Encode1(aesEncryptToBytes(content, encryptKey));}public static String aesEncrypt2(String content, String encryptKey) throws Exception {logger.info("加密前的数据content={}",content);return base64Encode2(aesEncryptToBytes(content, encryptKey));}public static String base64Encode1(byte[] bytes) {return new String(new Base64().encode(bytes));}public static String base64Encode2(byte[] bytes) {return new BASE64Encoder().encode(bytes); }public static byte[] aesEncryptToBytes(String content, String encryptKey) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException {KeyGenerator kgen = KeyGenerator.getInstance("AES");SecureRandom random = SecureRandom.getInstance("SHA1PRNG");random.setSeed(encryptKey.getBytes());kgen.init(128, random);Cipher cipher = Cipher.getInstance("AES");cipher.init(1, new SecretKeySpec(kgen.generateKey().getEncoded(), "AES"));return cipher.doFinal(content.getBytes("utf-8"));}}
BASE64Decoder替代类Base64相关推荐
- ECCDSA加签验签工具类, base64编码
对传入参数, 按照key首字母降序排序 json序列化后, 进行 sha256 加密, 结果使用base64编码获取hash hash进行ECCDSA加密 package cn.box365.ipfs ...
- 常见加密工具类Base64、DES、AES、RSA、MD5汇总
文章目录 引言 1.Base64加密 2.DES加密 3.AES加密 4.RSA加密 5.MD5加密 引言 项目中经常会用到Base64.DES.AES.RSA.MD5几种加解密方式,每次都要去网上搜 ...
- 用@Data注解的形式替代类中的setter、getter方法
目录 1. 封装 2. @Data注解介绍 3. Lombok的使用 1. 封装 在类中,为了增强数据的安全性和隐蔽性,通常会对数据和与数据有关的方法进行封装: 封装的步骤: 1.将类中的属性设置为p ...
- 图片转换工具类 base64、Uri转String
//base64格式前缀:data:image/png;base64, public class ImageUtils {//将图片转换成Base64编码的字符串public static Strin ...
- 3DES加密、解密工具类
一个简单的3DES加密.解密工具类,Base64在 sun.misc.BASE64Decoder替代类有介绍 package com.w; import java.security.Key; impo ...
- md5、base64、RSA1024、RA2048工具类
MD5: package com.pmtest.common.utils.sign;import java.security.MessageDigest; import org.slf4j.Logge ...
- java BASE64流 输出图片。
java BASE64流 输出图片. 亲测3个请求都可用,没有测试性能问题.仅供参考 BASE64Decoder Eclipsse 类可能引用不了解决方案链接:http://blog.csdn.net ...
- jdk1.8以前不建议使用其自带的Base64来加解密
JDK1.8之前的base64是内部测试使用的代码,不建议生产环境使用,而且未来可能会移除, JDK1.8提供最新可以正式使用的Base64类, 不要使用JDK中自带的sun.misc.BASE64D ...
- 常用的字符串加密解密工具类
提前声明一下:此工具类忘记出处了,很抱歉,如果原创遇上了我立马上您的链接: 加密解密的工具类DataEncryptUtil: package org.util;import java.security ...
最新文章
- codeforces364D
- 【AutoML】如何使用强化学习进行模型剪枝?
- linux zip 开源工程,7-Zip 18.06 发布,开源数据压缩程序
- Codeforces Beta Round #1
- 混合模式商城的可经销商品池
- 理论基础 —— 线性表 —— 双向链表
- 苹果修复老旧设备中的两个 iOS 0day
- STM32F7通过QSPI驱动W25Q256芯片
- 创建shap文件的属性字段类型区别_shapefile数据文件组成
- 你所不知道的我国交通工程早期经历了怎样的发展?
- 程序人生之六:写在 2010 年最后一晚,我这两年的工作总结
- 深度强化学习中的对抗攻击和防御
- 对大学三年学习生活的总结与反思
- WebGL 水波及焦散(刻蚀)的渲染总结
- linux虚拟机关se,Centos关闭SELinux和防火墙的关闭
- oracle求字段中指定字符串出现个数
- 计算机二级ppt学什么软件,计算机二级办公软件机考试参考资料.ppt
- 小晶粒zsm分子筛合成表征实验报告_小晶粒ZSM-5分子筛的合成
- notepad++添加HEX插件,编辑歌曲ID3信息,UTF8,UTF16 encoded Unicode,添加U2020字符方法
- 电影《无名之辈》观后感