Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >idea编译报错 sun.misc.BASE64Decoder升级处理

idea编译报错 sun.misc.BASE64Decoder升级处理

作者头像
oktokeep
发布于 2024-10-09 00:32:22
发布于 2024-10-09 00:32:22
15100
代码可运行
举报
文章被收录于专栏:第三方工具第三方工具
运行总次数:0
代码可运行

idea编译报错 sun.misc.BASE64Decoder升级处理

警告: 17:01:15 /deploy/jenkins/workspace/auto-java-test/utils/ImageBase64Utils.java:67: warning: BASE64Encoder is internal proprietary API and may be removed in a future release 17:01:15 BASE64Encoder encoder = new BASE64Encoder();

import sun.misc.BASE64Decoder;

替代写法: //从JDK 1.8开始,就提供了java.util.Base64.Decoder和java.util.Base64.Encoder的JDK公共API,可代替sun.misc.BASE64Decoder和sun.misc.BASE64Encoder的JDK内部API。 //byte[] bytes = new BASE64Decoder().decodeBuffer(base64); byte[] bytes = Base64.getDecoder().decode(base64); //或者使用方法 import org.apache.commons.codec.binary.Base64; return Base64.encodeBase64String(encrypted);

demo测试类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
    public void test2() throws Exception{
        //从JDK 1.8开始,就提供了java.util.Base64.Decoder和java.util.Base64.Encoder的JDK公共API,可代替sun.misc.BASE64Decoder和sun.misc.BASE64Encoder的JDK内部API。
        //byte[] bytes = new BASE64Decoder().decodeBuffer(base64);

        System.out.println("-----------------------早期写法----------------------");
        String text = "字串文字";
         BASE64Encoder encoder = new BASE64Encoder();
         BASE64Decoder decoder = new BASE64Decoder();
         byte[] textByte = text.getBytes("UTF-8");
        //编码
         String encodedText = encoder.encode(textByte);
        System.out.println(encodedText);
        //解码
        System.out.println(new String(decoder.decodeBuffer(encodedText), "UTF-8"));

        /**
         * 与sun.mis c套件和Apache Commons Codec所提供的Base64编解码器来比较的话,Java 8提供的Base64拥有更好的效能。实际测试编码与解码速度的话,Java 8提供的Base64,要比sun.mis c套件提供的还要快至少11倍,比Apache Commons Codec提供的还要快至少3倍。因此在Java上若要使用Base64,这个Java 8底下的java .util套件所提供的Base64类别绝对是首选!
         * https://blog.csdn.net/zhou_kapenter/article/details/62890262
         */
        System.out.println("-----------------------新的写法----------------------");
        byte[] test11 = Base64.getEncoder().encode(textByte);
        System.out.println("test11字符串="+new String(test11, "UTF-8"));
        byte[] bytes11 = Base64.getDecoder().decode(test11);
        System.out.println("test11="+new String(bytes11, "UTF-8"));

        System.out.println("-----------------------apache写法----------------------");
        String test22 = org.apache.tomcat.util.codec.binary.Base64.encodeBase64String(textByte);
        System.out.println("test22字符串="+test22);
        byte[] bytes22 = org.apache.tomcat.util.codec.binary.Base64.decodeBase64(test22);
        System.out.println("test22="+new String(bytes22, "UTF-8"));

        /**
         * 打印效果: 结果一致
         * -----------------------早期写法----------------------
         * 5a2X5Liy5paH5a2X
         * 字串文字
         * -----------------------新的写法----------------------
         * test11字符串=5a2X5Liy5paH5a2X
         * test11=字串文字
         * -----------------------apache写法----------------------
         * test22字符串=5a2X5Liy5paH5a2X
         * test22=字串文字
         */
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
三分钟学会自定义spring-boot-starter
传统的 Maven项目一般将需要被复用的组件做成 Module来进行管理,以便二次调用;而在 Spring Boot项目中我们则可以使用更加优雅的 Spring Boot Starter来完成这一切。
java技术爱好者
2020/09/22
8090
三分钟学会自定义spring-boot-starter
md5和base64加密解密
import java.io.IOException; import java.security.MessageDigest; import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; public class MD5Util { /** * MD5加密 */ public static String md5Encryption(String str) { MessageDig
HUC思梦
2020/09/03
2.6K0
Base64和byte[]数组互转的两种方式
文章目录 方式一:jdk的工具类javax.xml.bind.DatatypeConverter 方式二:jdk的工具类sun.misc.BASE64Decoder和sun.misc.BASE64Encoder 方式一:jdk的工具类javax.xml.bind.DatatypeConverter //方式一:jdk的工具类javax.xml.bind.DatatypeConverter String str = "base64字符串"; //byte[]转base64 String encode = D
共饮一杯无
2022/11/28
3990
警告: BASE64Decoder是内部专用 API, 可能会在未来发行版中删除
oktokeep
2024/10/09
1660
Java Base64转换,Java Base64工具类
但这个性能一般,而且转换出来的base64字符串会有换行符,可能还需要替换换行符,避免在某些场景因为分行导致出错 2、使用Jdk8的Base64工具类(优先考虑使用)
用户9131103
2023/07/17
7350
Base64和URL编解码操作
在下载文件的时候有时候文件名称中含有中文名,下载下来后会乱码,所以就对文件名称进行一些编解码操作,来解决乱码。 BASE64编解码(解决火狐浏览器乱码): new BASE64Encoder().encode(需要编码的字节数组) —> 编码 new BASE64Decoder().decodeBuffer(解码内容) —> 解码 URL编解码: URLEncoder.encode(需要编码的内容, “UTF-8”); —> 编码 URLDecoder.decode(需要解码的内容,“UTF
阿年、嗯啊
2021/04/27
1.8K0
实战SSM_O2O商铺_44【DES加密】 关键配置信息进行DES加密
代码地址: https://github.com/yangshangwei/o2o
小小工匠
2021/08/17
2800
Java加解密工具类
今天coding的时候需要大数据大佬对接接口,接口用的DES加密 ECB的PKCS5Padding填充方式。从 CSDN看到的都是收费的,我就搞不明白了一个工具类至于收费不,我就有点不开心了。为什么就不能有一个分享的精神,程序员何必为难程序员呢。 今天我给大家分享三个我自己常用的三个加密工具类吧 。AES、DES、MD5 AES加密解密工具类返回Base64 package cn.builder.util; import org.apache.commons.codec.binary.Base64;
猿码优创
2019/07/28
3.9K0
【java基础】 图片和base64字符串互转
1、代码 package com.zsxy.util; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; im
用户5640963
2019/07/25
1.4K0
spring和springboot中加密连接数据库的信息前言:一、spring中加密连接数据库的信息:二、springboot项目中加密数据库连接信息:总结:
在实际开发中,一些关键的信息肯定是要加密的,否则就太不安全了。比如连接数据库的用户名和密码,一般就需要加密。接下来就看看spring项目和spring boot项目中分别是如何加密这些信息的。
贪挽懒月
2018/08/02
1.5K0
spring和springboot中加密连接数据库的信息前言:一、spring中加密连接数据库的信息:二、springboot项目中加密数据库连接信息:总结:
java编写Base64密码器
Base64加密算法,应用广泛,尤其是在电子邮件传输上,有很大的用途
张泽旭
2018/12/10
6100
JavaUtil_06_DES加解密工具
一、示例 CommonUtil.java package com.ray.test.des; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Arrays; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class CommonUtil { public static void main(
shirayner
2018/08/10
6830
AES加密
package com.test.util.encrypt; import org.apache.commons.lang3.StringUtils; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; import java.ma
Ryan-Miao
2018/03/13
3.1K0
Java安全之安全加密算法
本篇文来谈谈关于常见的一些加密算法,其实在此之前,对算法的了解并不是太多。了解的层次只是基于加密算法的一些应用上。也来浅谈一下加密算法在安全领域中的作用。写本篇文也是基于算法的应用和实现,也是我的基本原则,能用就行。
全栈程序员站长
2021/04/07
1.4K0
Java安全之安全加密算法
java与openssl的rsa算法互
说明    1.java生成的公私钥格式为 pkcs8, 而openssl默认生成的公私钥格式为 pkcs1,两者的密钥实际上是不能直接互用的     2.java采用的rsa默认补齐方式是pkcs1, 因此互用的时候需要将openssl中的补齐方式设置为RSA_PKCS1_PADDING     3.rsa加密中,加密数据长度有限制,不能超过密钥长度-11, 如密钥为1024位,则最长的加密数据位117字节; 加密后的密文长度总是为密钥的一半,即1024位的密文为512位 RSA加密常用的填充方式有下
一灰灰blog
2018/02/06
4.2K0
项目工具类
一、前言     在工作中,难免遇到各种各样的问题,每个人似乎都有一套自己的解决方案。而我,又不想每次解决完问题就把东西扔了,捡了芝麻,丢了西瓜,什么时候才能进步勒?学习要靠积累,毕竟量变才能引起质变嘛。所以写了这篇博文,不定时更新自己项目中遇到的问题、踩过的那些坑...... 二、项目 1、文件流 Java 将两张图片合成一张图片 /** * 图片合并 */ public String joinImage(String url1, String url2) {
JMCui
2018/03/16
1.8K0
Java Base64 编码解码方案总结
Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便。在实际应用上,Base64除了能将Binary资料可视化之外,也常用来表示字串加密过后的内容。如果要使用Java 程式语言来实作Base64的编码与解码功能,可以参考本篇文章的作法。
Java技术栈
2018/07/30
1.8K0
java实现将图片读取成base64字符串,将base64字符串存储为图片。
将图片转化为字符串以后,由于字符串更方便在网络上通过ajax传输、在网络web前台和后台间进行传输。
全栈程序员站长
2022/11/18
2K0
一篇文章彻底弄懂Base64编码原理
----------------------------转载部分start-----------------------------
明明如月学长
2021/08/27
5.9K1
AES加密——Java与iOS的解决方案
该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael为名投稿高级加密标准的甄选流程。(Rijndael的发音近于"Rhine doll")
Originalee
2018/08/30
2.5K0
相关推荐
三分钟学会自定义spring-boot-starter
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档