md5和byte64字符串加密

说明:最近碰到一个需求,网络请求,传递json的时候,必须加密,对字符串加密,然后前端去解密字符串,然后解析json,展示数据,可逆

step1: Md5加密方式

package com.example.iosdialogdemo;import java.security.MessageDigest;/*** MD5方式加密字符串生成32位码,并解密还原字符串内容* 且MD5加密生成的32位码是唯一且不变的,** @author zhangkuankuan* @version Id: MD5Test.java, v 0.1 2022/08/17 17:01 zhangkuankuan Exp $$*/
public class MD5Test {/*** 生成32位码* @param s - 需要加密的字符串* @return String 32位码*/public final static String MD5(String s) {try {byte[] btInput = s.getBytes();MessageDigest mdInst = MessageDigest.getInstance("MD5");mdInst.update(btInput);byte[] md = mdInst.digest();StringBuffer sb = new StringBuffer();for (int i = 0; i < md.length; i++) {int val = ((int) md[i]) & 0xff;if (val < 16)sb.append("0");sb.append(Integer.toHexString(val));}return sb.toString();} catch (Exception e) {return null;}}/*** 加密解密算法 执行一次加密,两次解密 (可逆加解密算法)** @param inStr - 需要加密的字符串* @return String 解密数据*/public static String JM(String inStr) {char[] a = inStr.toCharArray();for (int i = 0; i < a.length; i++) {a[i] = (char) (a[i] ^ 't');}String k = new String(a);return k;}/*** 测试主函数*/public static void main(String[] args) {String phone = "14729795483";//9a9338ea65157723fb60eb4970a20be8System.out.println("原始:" + phone);System.out.println("MD5后:" + MD5(phone));System.out.println("(可逆)加密的:" + JM(phone));//一次调用加密System.out.println("(可逆)解密的:" + JM(JM(phone)));//两次调用解密String password = "*4521zxlk";//122159007aeb0c7bdef07055f9930464System.out.println("原始:" + password);System.out.println("MD5后:" + MD5(password));System.out.println("(可逆)加密的:" + JM(password));//一次调用加密System.out.println("(可逆)解密的:" + JM(JM(password)));//两次调用解密}
}

step2: Byte64加密方式

package com.example.iosdialogdemo;import java.util.Base64;/***  Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。** @author zhenye 2018/8/22*/
public class Base64Utils {public static void main(String[] args) {String jsonString = "14729795483";//9a9338ea65157723fb60eb4970a20be8String aaa = Base64Utils.encode(jsonString);System.out.println("原始的长度:" +jsonString.length());//一次调用加密System.out.println("(可逆)加密的长度:" + aaa.length());//一次调用加密System.out.println("(可逆)加密的:" +aaa);//一次调用加密String bbb =     Base64Utils.decode(aaa);System.out.println("(可逆)解密的:" + bbb);//两次调用解密}/*** Base64编码* @param message 待Base64编码的字符串* @return 编码后的字符串*/public static String encode(String message){if (message == null){return null;}byte[] bytes = message.getBytes();byte[] result = Base64.getEncoder().encode(bytes);return new String(result);}/*** Base64编码* @param bytes 待Base64编码的数据* @return 编码后的字符串*/public static byte[] encode(byte[] bytes){return Base64.getEncoder().encode(bytes);}/*** Base64解码* @param message 待Base64解码的字符串* @return 解码后的数据*/public static String decode(String message){if (message == null){return null;}byte[] bytes = message.getBytes();byte[] result = Base64.getDecoder().decode(bytes);return new String(result);}/*** Base64解码* @param bytes 待Base64解码的数据* @return 解码后的数据*/public static byte[] decode(byte[] bytes){return Base64.getDecoder().decode(bytes);}}

end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java技术精粹:高级面试问题与解答指南(一)

Java 面试问题及答案 问题1&#xff1a;请解释Java中的多态性&#xff0c;并给出一个例子。 答案&#xff1a; 多态性是Java中的一个重要特性&#xff0c;它允许一个引用类型可以指向多种实际类型的对象&#xff0c;并且可以通过这个引用调用实际对象的方法。多态性主要通过继…

JAVA:常见的加密算法简介

一、前言 加密算法是指将明文信息转变为密文信息的过程&#xff0c;即将信息从可读形式&#xff08;明文&#xff09;转换为加密形式&#xff08;密文&#xff09;的过程。在加密过程中&#xff0c;信息通过加密算法和加密密钥被加密处理&#xff0c;加密后的信息&#xff08;密…

【代码随想录算法训练Day17】LeetCode 110. 平衡二叉树、LeetCode 257.二叉树的所有路径、LeetCode 404.左叶子之和

Day17 二叉树第四天 LeetCode 110. 平衡二叉树【后序遍历】 平衡二叉树仍是后序遍历&#xff0c;就是获取左右子树的高度然后作差&#xff0c;如果子树就不平衡&#xff0c;那么就直接将-1向上传给父节点&#xff0c;否则该数的高度为左右子树高度的最大值1。 class Solutio…

day 38 435.无重叠区间 763.划分字母区间 56. 合并区间 738.单调递增的数字 968.监控二叉树

435.无重叠区间 思路 为了使区间尽可能的重叠所以排序来使区间尽量的重叠&#xff0c;使用左边界排序来统计重叠区间的个数与452. 用最少数量的箭引爆气球恰好相反。 代码 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,…

如何在cPanel面板中开启盗链保护

本周有一个客户&#xff0c;购买Hostease的主机&#xff0c; 客户购买的是Linux虚拟主机&#xff0c;带cPanel面板的。询问我们的在线客服&#xff0c;如何可以防止他的网站上的图片不被盗用。cPanel的盗链保护功能可以帮助客户防止图片被盗链。 盗链&#xff08;Hotlinking&a…

.NET Core与.NET Framework的区别

.NET Core和.NET Framework是微软提供的两种主要的开发平台&#xff0c;用于构建各种应用程序。虽然它们都基于.NET技术&#xff0c;但在架构、平台支持、性能、开发工具和社区支持等方面存在显著差异。本文将详细探讨.NET Core和.NET Framework的主要区别&#xff0c;帮助开发…

呆马科技----构建智能可信的踏勘云平台

近年来&#xff0c;随着信息技术的快速发展&#xff0c;各个行业都在积极探索信息化的路径&#xff0c;以提升工作效率和服务质量。智慧踏勘云平台是基于区块链和大数据技术构建的全流程智慧可信踏勘解决平台。平台集远程视频、数据显示、工作调度、过程记录为一体&#xff0c;…

有容量限制的车辆路径规划问题(Capacitated Vehicle Routing Problem)

在看matlab的时候发现了这篇文章https://www.frontiersin.org/articles/10.3389/fict.2019.00013/full 仔细阅读一下。(英语渣渣&#xff0c;自学用) The Capacitated Vehicle Routing Problem (CVRP) is an NP-optimization problem (NPO) that has been of great interest …

图像处理之边缘检测(C++)

图像处理之边缘检测&#xff08;C&#xff09; 文章目录 图像处理之边缘检测&#xff08;C&#xff09;前言一、Roberts算子1.原理2.代码实现 二、Sobel算子1.原理2.代码实现 三、Prewitt算子1.原理2.代码实现 四、Laplacian算子1.原理2.代码实现 五、LOG算子1.原理2.代码实现 …

完全匹配企业需求的替代FTP升级软件怎么找

企业在处理数据传输时&#xff0c;效率和安全性是关键。尽管传统的FTP曾被广泛采用&#xff0c;但因其传输慢、安全性不足和难以管理等问题&#xff0c;已不再满足现代企业的需求。许多企业正在寻找能够满足其需求的FTP替代方案&#xff0c;但市场上选择众多&#xff0c;找到合…

Python01:初入Python(Mac)

Python环境准备 下载Python&#xff1a;官网https://www.python.org/ 下载PyCharm&#xff1a;官网https://www.jetbrains.com/pycharm/download Python与PyCharm的关系 Python&#xff08;解释器&#xff09;&#xff1a;机器语言—>翻译人员–>翻译成电脑能读懂的 PyC…

STM32应用开发进阶--SPI总线(7脚OLED中景园ss1306+HAL库_硬件SPI/软件模拟SPI)

实现目标 1、掌握SPI总线基础知识&#xff1b; 2、会使用软件模拟SPI总线和STM32硬件SPI总线&#xff1b; 3、 学会STM32CubeMX软件关于SPI的配置; 4、掌握OLED显示屏驱动&#xff1b; 5、具体目标&#xff1a;&#xff08;1&#xff09;用STM32硬件SPI驱动OLED显示“你好…

JAVA实现定时任务 从指定时间开始每隔 n 天执行一次, 可删除重设

本文描述的使用 Java 自带的 ScheduledExecutorService 来实现这个业务,直接看代码 涉及到的参数说明: ScheduledTaskManager 类负责管理定时任务的创建、取消和重设。scheduleTask 方法用于创建定时任务。它接受任务名称、开始时间、执行间隔和任务本身作为参数。cancelTask 方…

抽烟行为检测:从传统巡查到智能算法

在当前人工智能和计算机视觉技术的迅猛发展下&#xff0c;基于视觉分析的抽烟行为检测算法成为一种高效的技术手段。此类算法通常依赖于深度学习模型&#xff0c;特别是卷积神经网络&#xff08;CNN&#xff09;&#xff0c;通过对摄像头捕捉的视频流进行实时分析&#xff0c;能…

在旧版 Nginx 官方 Dockerfile 上集成第三方模块的探索

问题背景 线上生产环境用的 nginx 1.21, 然后由于新功能引入的一个问题&#xff0c;需要使用第三方模块 ngx_http_subs_filter_module&#xff0c;目的是使用正则表达式来移除响应结果中的某些数据。 由于这个客户的环境非常重要&#xff0c;组内的大哥们也不敢随便升级 ngin…

网络安全、信息安全、数据安全的定义与区别

信息安全 信息安全是指信息的保密性、完整性、可用性和真实性的保持。从定义角度来说&#xff0c;信息安全没有严格标准定义&#xff0c;但从信息安全涉及的内容出发&#xff0c;信息安全确保信息存储或传输中的信息&#xff0c;不被他人有意或无意的窃取与破坏。这里的“信息”…

Vue3+ts(day07:pinia)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈&#xff08;笔记是根据b站上学习的尚硅谷的前端视频【张天禹老师】&#xff0c;记录一下学习笔记&#xff0c;用于自己复盘&#xff0c;有需要学…

ENVI光谱识别指导采矿管理者监测铜矿分布

圣地亚哥SRGIS的GIS专家Chile需要利用影像光谱信号勘察Chuquicamata的铜矿分布。 解决方案 Chuquicamata是世界上最大的斑岩铜矿分布区。SRGIS发现西部地区只有有限的矿物和贫瘠的岩石&#xff0c;但东部有铜矿分布。为了进一步测定矿藏的情况&#xff0c;他们开发出一套程序&a…

PyTorch中的形状变换术:reshape、view与permute的区别与联系

在PyTorch中&#xff0c;reshape、view 和 permute 都是用于改变张量&#xff08;Tensor&#xff09;形状&#xff08;shape&#xff09;的方法&#xff0c;但它们各自的功能和用途有所不同。 view: view方法用于将张量重新整形为具有指定形状的张量。使用view时&#xff0c;必…

NoSQL Redis配置与优化

一、关系数据库与非关系型数据库 1. 关系型数据库&#xff1a; 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上&#xff0c;一般面向于记录。 SQL 语句&#xff08;标准数据查询语言&#xff09;就是一种基于关系型…