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

JAVA  字符串加密、密碼加密實(shí)現(xiàn)方法

 更新時(shí)間:2016年10月20日 16:05:39   投稿:lqh  
這篇文章主要介紹了JAVA 字符串加密、密碼加密實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下

在我們的程序設(shè)計(jì)中,我們經(jīng)常要加密一些特殊的內(nèi)容,今天總結(jié)了幾個(gè)簡(jiǎn)單的加密方法,分享給大家!

如何用JAVA實(shí)現(xiàn)字符串簡(jiǎn)單加密解密?為保證用戶信息安全,系統(tǒng)在保存用戶信息的時(shí)候,務(wù)必要將其密碼加密保存到數(shù)據(jù)庫(kù)。 

需要使用密碼的時(shí)候,取出數(shù)據(jù),解密處理即可。 

避免保存明文密碼。

方案一:

package com.tnt.util; 

 

import java.security.MessageDigest; 

public class StringUtil { 

  private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", 

      "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; 

 

  /** 

   * 轉(zhuǎn)換字節(jié)數(shù)組為16進(jìn)制字串 

   * 

   * @param b 

   *      字節(jié)數(shù)組 

   * @return 16進(jìn)制字串 

   */ 

  public static String byteArrayToHexString(byte[] b) { 

    StringBuffer resultSb = new StringBuffer(); 

    for (int i = 0; i < b.length; i++) { 

      resultSb.append(byteToHexString(b[i])); 

    } 

    return resultSb.toString(); 

  } 

 

  private static String byteToHexString(byte b) { 

    int n = b; 

    if (n < 0) 

      n = 256 + n; 

    int d1 = n / 16; 

    int d2 = n % 16; 

    return hexDigits[d1] + hexDigits[d2]; 

  } 

 

  public static String MD5Encode(String origin) { 

    String resultString = null; 

    try { 

      resultString = new String(origin); 

      MessageDigest md = MessageDigest.getInstance("MD5"); 

      resultString = byteArrayToHexString(md.digest(resultString 

          .getBytes())); 

    } catch (Exception ex) { 

    } 

    return resultString; 

  } 

 

  public static void main(String[] args) { 

    System.err.println(MD5Encode("123456")); 

  } 

} 

方案二

package com.shangyu.core.utils;



public class MD5 {


public static String getMD5(byte[] source) {

String s = null;

char hexDigits[] = { // 用來(lái)將字節(jié)轉(zhuǎn)換成 16 進(jìn)制表示的字符

‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘a(chǎn)‘, ‘b‘, ‘c‘, ‘d‘,

‘e‘, ‘f‘ };

try {

java.security.MessageDigest md = java.security.MessageDigest

.getInstance("MD5");

md.update(source);

byte tmp[] = md.digest(); // MD5 的計(jì)算結(jié)果是一個(gè) 128 位的長(zhǎng)整數(shù),

// 用字節(jié)表示就是 16 個(gè)字節(jié)

char str[] = new char[16 * 2]; // 每個(gè)字節(jié)用 16 進(jìn)制表示的話,使用兩個(gè)字符,

// 所以表示成 16 進(jìn)制需要 32 個(gè)字符

int k = 0; // 表示轉(zhuǎn)換結(jié)果中對(duì)應(yīng)的字符位置

for (int i = 0; i < 16; i++) { // 從第一個(gè)字節(jié)開始,對(duì) MD5 的每一個(gè)字節(jié)

// 轉(zhuǎn)換成 16 進(jìn)制字符的轉(zhuǎn)換

byte byte0 = tmp[i]; // 取第 i 個(gè)字節(jié)

str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // 取字節(jié)中高 4 位的數(shù)字轉(zhuǎn)換,

// >>>

// 為邏輯右移,將符號(hào)位一起右移

str[k++] = hexDigits[byte0 & 0xf]; // 取字節(jié)中低 4 位的數(shù)字轉(zhuǎn)換

}

s = new String(str); // 換后的結(jié)果轉(zhuǎn)換為字符串



} catch (Exception e) {

e.printStackTrace();

}

return s;

}



public static String getMD5(String str) {

return getMD5(str.getBytes());

}


public static void main(String[] args){

System.out.println(MD5.getMD5("123456"));

}

}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • spring?IOC容器管理必須知道的一些操作(基于XML方式)

    spring?IOC容器管理必須知道的一些操作(基于XML方式)

    Spring框架的核心是Spring容器,容器創(chuàng)建對(duì)象,將它們裝配在一起,配置它們并管理它們的完整生命周期,下面這篇文章主要給大家介紹了關(guān)于spring?IOC容器管理必須知道的一些操作,需要的朋友可以參考下
    2022-03-03
  • 關(guān)于HashMap源碼解讀

    關(guān)于HashMap源碼解讀

    HashMap是基于哈希表的Map接口實(shí)現(xiàn),主要用于存儲(chǔ)鍵值對(duì),它通過(guò)數(shù)組、鏈表和紅黑樹來(lái)實(shí)現(xiàn),解決了哈希沖突問(wèn)題,Java?8中,HashMap對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行了優(yōu)化,引入紅黑樹來(lái)提高查找效率,此外,HashMap是非線程安全的,適用于單線程環(huán)境
    2024-09-09
  • MyBatis批量更新(update foreach)報(bào)錯(cuò)問(wèn)題

    MyBatis批量更新(update foreach)報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了MyBatis批量更新(update foreach)報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 淺談使用java解析和生成JSON

    淺談使用java解析和生成JSON

    在www.json.org上公布了很多JAVA下的json構(gòu)造和解析工具,其中g(shù)oogle-gson和org.json比較簡(jiǎn)單,兩者使用上差不多但還是有些區(qū)別。下面我們就來(lái)分別介紹下用他們構(gòu)造和解析Json數(shù)據(jù)的方法示例。
    2015-08-08
  • SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解

    SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解

    這篇文章主要介紹了SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • springboot+mybatis如何屏蔽掉mybatis日志

    springboot+mybatis如何屏蔽掉mybatis日志

    這篇文章主要介紹了springboot+mybatis如何屏蔽掉mybatis日志問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 使用Java后端操作Docker的詳細(xì)教程

    使用Java后端操作Docker的詳細(xì)教程

    Docker 是現(xiàn)代開發(fā)和部署流程中不可或缺的一部分,它簡(jiǎn)化了應(yīng)用程序的環(huán)境配置、打包和分發(fā),使得在不同機(jī)器上運(yùn)行相同的應(yīng)用變得更加輕松和一致,本文將詳細(xì)介紹如何使用命令行工具(CMD)操控 Docker 來(lái)配置環(huán)境,需要的朋友可以參考下
    2025-02-02
  • Java常用函數(shù)式接口總結(jié)

    Java常用函數(shù)式接口總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著Java常用函數(shù)式接口展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 一文搞懂SpringMVC中@InitBinder注解的使用

    一文搞懂SpringMVC中@InitBinder注解的使用

    @InitBinder方法可以注冊(cè)控制器特定的java.bean.PropertyEditor或Spring Converter和 Formatter組件。本文通過(guò)示例為大家詳細(xì)講講@InitBinder注解的使用,需要的可以參考一下
    2022-06-06
  • Java五子棋單機(jī)版源碼分享

    Java五子棋單機(jī)版源碼分享

    這篇文章主要為大家分享了Java五子棋單機(jī)版源碼,JavaGUI編寫單機(jī)版五子棋,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評(píng)論

海安县| 晋江市| 建昌县| 宝清县| 五指山市| 盐山县| 颍上县| 禹州市| 光泽县| 汶上县| 清流县| 迁西县| 彰化市| 铜梁县| 湖州市| 珲春市| 含山县| 南郑县| 类乌齐县| 沾化县| 邢台市| 施秉县| 东莞市| 营口市| 长宁县| 牙克石市| 个旧市| 繁昌县| 都安| 宜川县| 睢宁县| 湛江市| 馆陶县| 慈溪市| 宁乡县| 丰原市| 长治市| 拉萨市| 永丰县| 蒲城县| 深州市|