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.pswp.cn/web/14290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14290.shtml
英文地址,請注明出處:http://en.pswp.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;就是一種基于關系型…