【Java/加解密】不算加密的加密-base64加解密(使用Java8的Base64实现)

前篇讲述了使用Apache的Codec来进行Base64加解密的情况,这回来看直接使用JDK1.8的Base64方案。

代码:

复制代码
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64_Test {
    public static void main(String[] args) {
        String originalText="Let’s Build a Giant Airship 青海长云暗雪山";
        System.out.println("原文=\t"+originalText);
        
        // 原文数组
        byte[] byteContent = originalText.getBytes(StandardCharsets.UTF_8);
        
        // 经base64“加密”后的数组
        byte[] encodedArr=Base64.getEncoder().encode(byteContent);
        
        // 供传递的“密文”
        String cipheredTxt=new String(encodedArr,StandardCharsets.UTF_8);
        System.out.println("密文=\t"+cipheredTxt);
        
        // 将收到的“密文”用base64“解密”
        byte[] decodedArr=Base64.getDecoder().decode(cipheredTxt);
        
        // 最终结果
        String cipherTxt=new String(decodedArr,StandardCharsets.UTF_8);
        System.out.println("解密后=\t"+cipherTxt); 
    }
}
复制代码

输出:

原文=    Let’s Build a Giant Airship 青海长云暗雪山
密文=    TGV04oCZcyBCdWlsZCBhIEdpYW50IEFpcnNoaXAg6Z2S5rW36ZW/5LqR5pqX6Zuq5bGx
解密后=    Let’s Build a Giant Airship 青海长云暗雪山

 

与前篇两相对比以下,发现生成的密文是不一样的,也就是说两种实现使用的符号映射表是不一样的,看来codec和JDK1.8的实现不能互通。即codec加密的JDK1.8不能解,反之亦然,这点值得注意。

END

 

posted @   逆火狂飙  阅读(198)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2019-10-05 [MyBatis]完整MyBatis CRUD工程
2019-10-05 [log4j]Error:The method getLogger(String) in the type Logger is not applicable for the arguments
2019-10-05 [java]将秒数转化为“天时分秒”的格式(转贴+修改)
2019-10-05 [Java]简单计算下一段Java代码段运行了多少秒
2019-10-05 【log4j】log4j.properties 文件示例
2019-10-05 [MyBatis]最简MyBatis工程
2019-10-05 [Java]给指定时间加上十秒
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示