7. AES加密之base64编码

2023-11-09

  1. 整个加密的流程:
    在这里插入图片描述
    在这里插入图片描述
  2. 编码算法:
    base64算法:与加密解密无关,只是对数据进行编码,方便在网络间进行传输.
import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Test {

    private static final String UTF8 = StandardCharsets.UTF_8.name();

    @Test
    public void testBase64() throws Exception{
        /**
         * 首先利用jdk自带的base64
         */
        String str = "this is content,这是需要需要加密的报文";
        String encode = Base64.getEncoder().encodeToString(str.getBytes(UTF8));
        System.out.println("base64编码后的数据: " + encode);

        System.out.println("============解码============");
        byte[] decode = Base64.getDecoder().decode(encode.getBytes(UTF8));
        System.out.println("解码:" + new String(decode,UTF8));
    }
}

在这里插入图片描述
使用依赖的工具类进行编码,首先需要引入jar

<dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
@Test
    public void testCommonsCodec() throws Exception{
        /**
         * 首先利用jdk自带的base64
         */
        String str = "this is content,这是需要需要加密的报文";
        String s = org.apache.commons.codec.binary.Base64.encodeBase64String(str.getBytes(UTF8));
        System.out.println("加密后的数据: " + s);

        System.out.println("=======================");
        byte[] decodeBase64 = org.apache.commons.codec.binary.Base64.decodeBase64(s.getBytes(UTF8));
        System.out.println("解码后的数据: " + new String(decodeBase64,UTF8));
    }

在这里插入图片描述
** 可以发现:两种实现方式加密的密文是一样的。**
3. 为什么要叫base64?
因为加密之后的密文总是由64个字符组成的.
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7. AES加密之base64编码 的相关文章

  • 无法在 Android 10 中创建目录

    我无法在 android 10 中创建目录 它可以在 android Oreo 之前的设备上运行 我尝试了两种创建文件夹的方法 Using File mkdir File f new File Environment getExternal
  • Java Try Catch Final 没有 Catch 的情况下会阻塞

    我正在审查一些新代码 该程序只有一个 try 和一个 finally 块 既然排除了 catch 块 那么如果 try 块遇到异常或任何可抛出的内容 它如何工作 它直接进入finally块吗 如果 try 块中的任何代码可以引发已检查异常
  • 未找到 MessageSource 的 ResourceBundle [消息]:找不到基本名称消息的包

    在 applicationContext xml 中 我定义了 MessageSource 如下所示
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 如果使用的 JVM 是 x86 或 x64,则以不同的方式解决 Maven 依赖关系?

    我设置了一个 Maven 存储库来托管一些 dll 但我需要我的 Maven 项目根据使用的 JVM 是 x86 还是 x64 下载不同的 dll 例如 在运行 x86 版本 JVM 的计算机上 我需要从存储库下载 ABC dll 作为依赖
  • 内存一致性 - Java 中的happens-before关系[重复]

    这个问题在这里已经有答案了 在阅读有关内存一致性错误的 Java 文档时 我发现与创建 发生 之前 关系的两个操作相关的点 当语句调用时Thread start 每个具有 与该语句发生之前的关系也有一个 与 new 执行的每个语句之间发生的
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • 将表值参数与 SQL Server JDBC 结合使用

    任何人都可以提供一些有关如何将表值参数 TVP 与 SQL Server JDBC 一起使用的指导吗 我使用的是微软提供的6 0版本的SQL Server驱动程序 我已经查看了官方文档 https msdn microsoft com en
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • 如何在 Eclipse Java 动态 Web 项目中使用 .properties 文件?

    我正在 Eclipse 中开发动态 Web 项目 我创建了一个 properties 文件来存储数据库详细信息 用户名 密码等 我通过右键单击项目和 New gt File 添加它 我使用了Java util包Properties类 但它不
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • Java:多线程内的 XA 事务传播

    我如何使用事务管理器 例如Bitronix http docs codehaus org display BTM Home JBoss TS http www jboss org jbosstm or Atomikos http www a
  • 在哪里存储 Java 的 .properties 文件?

    The Java教程 http download oracle com javase tutorial essential environment properties htmlon using Properties 讨论如何使用 Prop
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • OceanBase 安全审计之透明加密

    承接前文 OceanBase 安全审计的 传输加密 本文主要实践数据透明加密 并验证加密是否有效 作者 张乾 外星人2号 兼任四位喵星人的铲屎官 爱可生开源社区出品 原创内容未经授权不得随意使用 转载请联系小编并注明来源 本文约 1200
  • layui导入Excel文件

    具体如下图所示 首先 导入layui第三方插件js 地址 https fly layui com extend excel 1 在页面中引入excel js文件 引入excel layui config base layui ext ext
  • NOIP 1998 普及组 复赛 幂次方

    NOIP 1998 普及组 复赛 幂次方 1208 2的幂次方表示 此文代码与本人极其相似 唯一不同就是此文代码成功了 http www cnblogs com bofengyu p 4477355 html 思路 先打印2 7 2 3 2
  • 【死磕 Java 基础】--- 我一口气自己就动手实现一个 LRU

    大家好 我是大明哥 个人网站 https www topjava cn LRU 即 Least Recently Use 直译为 最近最少使用 它是根据数据的历史访问记录来进行数据淘汰的 淘汰掉最先访问的数据 其核心思想是 如果数据最近被访
  • UE4_编辑器UMG关闭窗口不能立刻销毁UMG

    问题描述 运行UMG 使之创建显示到视口 效果如下 点击关闭按钮 再次运行该UMG 使之显示到视口 通过在c 中获取该UMG的数量 发现数量为2 不是所预计得1 导致编写得代码出现bug 修改办法 截图如下 该解决办法不是实用所有程序 因为
  • Linux IPC之内存映射mmap()

    导言 如何使用mmap 系统调用来创建内存映射 它可以用于IPC以及其他很多方面 概述 mmap 系统调用 在调用进程的虚拟地址空间中创建一个新内存映射 映射分为两种 文件映射 内存映射文件 将一个文件的一部分直接映射到调用进程的虚拟内存中
  • C# 文件操作之创建文件夹

    本文章主要是讲述C 中文件操作的基础知识 如何创建文件夹 创建文件 介绍Directory类 DirectoryInfo类和使用FolderBrowserDialog组件 文件夹对话框 文章属于基础知识 参考了书籍刘丽霞 C 范例开发大全
  • SpringBoot不依赖(禁用)Gemfire数据库启动的方法

    默认情况下SpringBoot的启动是要依赖GemFire做为缓存数据库的 如果做一个小的项目 不需要缓存数据库 这将是一个不容易摘除的工作 通过对其官网技术资料的分析 这个也很容易做到 说一下我的技术环境 Spring boot版本 2
  • 乐观锁与悲观锁讲解,CAS、synchronized、锁升级、ReentrantLock、AQS

    什么是乐观锁和悲观锁 乐观锁 总是假设最好的情况 每次拿数据的是时候都认为别人没有进行修改 所以不会加锁 但是为了保证线程安全 每次修改的时候都会判断这个数据有没有被修改过 适用于写少的场景 因为在写操作较多时如果失败会不断通过自旋判断数据
  • IGBT基本工作原理及IGBT的作用是什么?

    IGBT 今天我们一起来了解关于IGBT 绝缘栅双极性晶体管 芯片 在过去的几十年中 我们生活的每个角落都离不开能源的驱动 然而 传统的功率晶体管却受限于一些方面不足 幸运的是 IGBT芯片的出现彻底改变了这一局面 IGBT和MOS管都是一
  • JavaWeb01-Servlet-thymeleaf-mvd-dispatcher-controller

    Servlet servlet的基本作用 第一个servlet程序 演示servlet的生命周期 public class Demo02Servlet extends HttpServlet Override public void ini
  • CodeGeeX使用指南

    CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型 使用超过二十种编程语言训练得到 基于CodeGeeX开发的插件可以实现通过描述生成代码 补全代码 代码翻译等一系列功能 CodeGeeX同样提供可以定制的提示模式 Pro
  • 华为OD机试真题-组装数组【2023Q1】

    题目内容 给你一个整数M和数组N N中的元素为连续整数 要求根据N中的元素组装成新的数组R 组装规则 1 R中元素总和加起来等于M 2 R中的元素可以从N中重复选取 3 R中的元素最多只能有1个不在N中 且比N中的数字都要小 不能为负数 输
  • 1012 数字分类

    1012 数字分类 题目 输入格式 输入样例 输出样例 代码 小结 题目 给定一系列正整数 请按要求对数字进行分类 并输出以下 5 个数字 A 1
  • sql 选取前两条_从零开始学习SQL(二)SQL简单查询

    SQL简单语句可用于查询数据库中的内容 数据来源 SQLZOO SELECT from WORLD Tutorial zh sqlzoo net 一 基本查询语句 从数据库中查询数据时 需要使用SELECT语句 通常SELECT语句可用于指
  • 【滤波器】1. 一阶RC滤波器

    文章目录 1 低通滤波器 2 高通滤波器 3 常用工具 1 低通滤波器 电容上的分压 U C U I
  • shell awk 入门

    awk 好用的数据处理工具 awk 也是一个非常棒的数据处理工具 sed 常常用于一整个行的处理 awk 则比较倾向于一行当中分成数个 栏位 或者称为一个域 也就是一列 来处理 因此 awk 相当的适合处理小型的数据数据处理呢 awk 通常
  • 在Linux系统中如何把文件拷贝到U盘

    Linux下把所有的都当成文件处理 如果在linux系统下需要拷贝文件 哪么你需要先把U盘挂载到系统中的某一个位置 然后再使用cp命令完成拷贝 工具原料 Linux操作系统一台 U盘一枚 方法 步骤 1 把U盘插入Linux电脑 确保U盘指
  • 用C语言编写的推箱子小游戏

    大一时候的期末大作业 一直没找到 在桌子缝里找到了优盘 现在才把内容放上来 希望能帮到你们 具体内容分为实验报告和程序具体代码 程序设计基础 期末大作业报告 实验设计 1 编写推箱子小游戏 2 使用C语言 3 使用Dev C 编程程序 4
  • 7. AES加密之base64编码

    整个加密的流程 编码算法 base64算法 与加密解密无关 只是对数据进行编码 方便在网络间进行传输 import org junit jupiter api Test import java nio charset StandardCha