最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)可逆加密算法

 更新時(shí)間:2019年03月22日 09:30:22   作者:Tony-Lu  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)可逆加密算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

很多加密包都提供復(fù)雜的加密算法,比如MD5,這些算法有的是不可逆的。

有時(shí)候我們需要可逆算法,將敏感數(shù)據(jù)加密后放在數(shù)據(jù)庫或配置文件中,在需要時(shí)再再還原。

這里介紹一種非常簡單的java實(shí)現(xiàn)可逆加密算法。

算法使用一個(gè)預(yù)定義的種子(seed)來對(duì)加密內(nèi)容進(jìn)行異或運(yùn)行,解密只用再進(jìn)行一次異或運(yùn)算就還原了。

代碼如下:

seed任意寫都可以。

代碼:

package cn.exam.signup.service.pay.util;
 
import java.math.BigInteger;
import java.util.Arrays;
 
public class EncrUtil {
 private static final int RADIX = 16;
 private static final String SEED = "0933910847463829232312312";
 
 public static final String encrypt(String password) {
 if (password == null)
  return "";
 if (password.length() == 0)
  return "";
 
 BigInteger bi_passwd = new BigInteger(password.getBytes());
 
 BigInteger bi_r0 = new BigInteger(SEED);
 BigInteger bi_r1 = bi_r0.xor(bi_passwd);
 
 return bi_r1.toString(RADIX);
 }
 
 public static final String decrypt(String encrypted) {
 if (encrypted == null)
  return "";
 if (encrypted.length() == 0)
  return "";
 
 BigInteger bi_confuse = new BigInteger(SEED);
 
 try {
  BigInteger bi_r1 = new BigInteger(encrypted, RADIX);
  BigInteger bi_r0 = bi_r1.xor(bi_confuse);
 
  return new String(bi_r0.toByteArray());
 } catch (Exception e) {
  return "";
 }
 }
 
 public static void main(String args[]){
 System.out.println(Arrays.toString(args));
 if(args==null || args.length!=2) return;
 if("-e".equals(args[0])){
  System.out.println(args[1]+" encrypt password is "+encrypt(args[1]));
 }else if("-d".equals(args[0])){
  System.out.println(args[1]+" decrypt password is "+decrypt(args[1]));
 }else{
  System.out.println("args -e:encrypt");
  System.out.println("args -d:decrypt");
 }
 }
 
}

運(yùn)行以上代碼:

[-e, 1234567890]
1234567890 encrypt password is 313233376455276898a5

[-d, 313233376455276898a5]
313233376455276898a5 decrypt password is 1234567890

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?輕松入門使用Fiddler抓包工具教程

    Java?輕松入門使用Fiddler抓包工具教程

    超文本傳輸協(xié)議(HTTP)是一個(gè)簡單的請(qǐng)求-響應(yīng)協(xié)議,其主要是基于TCP來實(shí)現(xiàn)的,可以通過Chrome開發(fā)者工具或者Wireshark或者Fiddler抓包,以便分析?HTTP?請(qǐng)求/響應(yīng)的細(xì)節(jié),本篇博客主要談?wù)撊绾问褂肍iddler抓取HTTP,當(dāng)然也可以抓取HTTPS
    2022-02-02
  • 巧用FutureTask 線程池輕松解決接口超時(shí)問題

    巧用FutureTask 線程池輕松解決接口超時(shí)問題

    這篇文章主要為大家介紹了使用FutureTask結(jié)合線程池輕松解決接口超時(shí)問題的巧妙用法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 深入解讀MVC模式和三層架構(gòu)

    深入解讀MVC模式和三層架構(gòu)

    這篇文章主要介紹了深入解讀MVC模式和三層架構(gòu),三層架構(gòu)就是為了符合“高內(nèi)聚,低耦合”思想,把各個(gè)功能模塊劃分為表示層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)的三層架構(gòu),各層之間采用接口相互訪問,需要的朋友可以參考下
    2023-04-04
  • MyBatis查詢數(shù)據(jù)庫語句總結(jié)

    MyBatis查詢數(shù)據(jù)庫語句總結(jié)

    MyBatis是一種持久化框架,可以與許多不同類型的關(guān)系型數(shù)據(jù)庫連接,下面這篇文章主要給大家介紹了關(guān)于MyBatis查詢數(shù)據(jù)庫語句的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • struts2實(shí)現(xiàn)文件下載功能

    struts2實(shí)現(xiàn)文件下載功能

    這篇文章主要為大家詳細(xì)介紹了struts2實(shí)現(xiàn)文件下載功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 淺談Java多線程的優(yōu)點(diǎn)及代碼示例

    淺談Java多線程的優(yōu)點(diǎn)及代碼示例

    這篇文章主要介紹了淺談Java多線程的優(yōu)點(diǎn)及代碼示例,還是比較不錯(cuò)的,這里分享給大家,需要的朋友可以參考。
    2017-11-11
  • Java中的5種同步輔助類介紹

    Java中的5種同步輔助類介紹

    你提交了一些任務(wù),但你想等它們都完成了再做另外一些事情;你提交了一些任務(wù),但是不想讓它們立刻執(zhí)行,等你喊123開始的時(shí)候,它們才開始執(zhí)行;等等這些場景,線程之間需要相互配合,或者等待某一個(gè)條件成熟執(zhí)行。這些場景想你就需要用到同步輔助類
    2014-04-04
  • 基于SpringBoot和Vue實(shí)現(xiàn)頭像上傳與回顯功能

    基于SpringBoot和Vue實(shí)現(xiàn)頭像上傳與回顯功能

    在現(xiàn)代Web應(yīng)用中,用戶個(gè)性化體驗(yàn)尤為重要,其中頭像上傳與回顯是一個(gè)常見的功能需求,本文將詳細(xì)介紹如何使用Spring Boot和Vue.js構(gòu)建一個(gè)前后端協(xié)同工作的頭像上傳系統(tǒng),并實(shí)現(xiàn)圖片的即時(shí)回顯,需要的朋友可以參考下
    2024-08-08
  • Spring Boot 整合 MongoDB的示例

    Spring Boot 整合 MongoDB的示例

    這篇文章主要介紹了Spring Boot 整合 MongoDB的示例,幫助大家更好的理解和學(xué)習(xí)spring boot框架,感興趣的朋友可以了解下
    2020-10-10
  • mybatis連接MySQL8出現(xiàn)的問題解決方法

    mybatis連接MySQL8出現(xiàn)的問題解決方法

    這篇文章主要介紹了mybatis連接MySQL8出現(xiàn)的問題解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10

最新評(píng)論

汝州市| 禹州市| 大埔区| 新平| 西贡区| 迁西县| 广饶县| 铜梁县| 西峡县| 睢宁县| 时尚| 钟山县| 平度市| 论坛| 峨眉山市| 西峡县| 满城县| 高要市| 额济纳旗| 元谋县| 遂昌县| 清涧县| 泰和县| 手游| 汉阴县| 德惠市| 古蔺县| 天镇县| 胶南市| 黎平县| 泰来县| 清新县| 密云县| 宁都县| 双桥区| 日喀则市| 辽阳市| 寿宁县| 广宁县| 通江县| 灌南县|