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

Java?實(shí)現(xiàn)字符串SHA1加密方法

 更新時(shí)間:2021年11月20日 16:14:40   作者:RYANRUN潤(rùn)  
這篇文章主要介紹了Java?實(shí)現(xiàn)字符串SHA1加密方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java 字符串SHA1加密

導(dǎo)入類

import java.security.MessageDigest;

定義函數(shù)

private String toUserPwd(final String password) {
  try {
   if (password == null) {
    return null;
   }
   final MessageDigest messageDigest = MessageDigest.getInstance("SHA");
   final byte[] digests = messageDigest.digest(password.getBytes());
   final StringBuilder stringBuilder = new StringBuilder();
   for (int i = 0; i < digests.length; i++) {
    int halfbyte = (digests[i] >>> 4) & 0x0F;
    for (int j = 0; j <= 1; j++) {
     stringBuilder.append(
       ((0 <= halfbyte) && (halfbyte <= 9))
         ? (char) ('0' + halfbyte)
         : (char) ('a' + (halfbyte - 10)));
     halfbyte = digests[i] & 0x0F;
    }
   }
   return stringBuilder.toString();
  } catch (final Throwable throwable) {
   this.log.error("error converting password", throwable);
   return null;
  }
 }

javaSHA1實(shí)現(xiàn)加密解密

封裝一個(gè)方法用于加密

/**
     * sha1加密
     * @param data
     * @return
     * @throws NoSuchAlgorithmException 
     */
    public static String sha1(String data) throws NoSuchAlgorithmException {
        //加鹽   更安全一些
        data += "lyz";
        //信息摘要器                                算法名稱
        MessageDigest md = MessageDigest.getInstance("SHA1");
        //把字符串轉(zhuǎn)為字節(jié)數(shù)組
        byte[] b = data.getBytes();
        //使用指定的字節(jié)來更新我們的摘要
        md.update(b);
        //獲取密文  (完成摘要計(jì)算)
        byte[] b2 = md.digest();
        //獲取計(jì)算的長(zhǎng)度
        int len = b2.length;
        //16進(jìn)制字符串
        String str = "0123456789abcdef";
        //把字符串轉(zhuǎn)為字符串?dāng)?shù)組
        char[] ch = str.toCharArray();
        
        //創(chuàng)建一個(gè)40位長(zhǎng)度的字節(jié)數(shù)組
        char[] chs = new char[len*2];
        //循環(huán)20次
        for(int i=0,k=0;i<len;i++) {
            byte b3 = b2[i];//獲取摘要計(jì)算后的字節(jié)數(shù)組中的每個(gè)字節(jié)
            // >>>:無符號(hào)右移  
            // &:按位與
            //0xf:0-15的數(shù)字
            chs[k++] = ch[b3 >>> 4 & 0xf];
            chs[k++] = ch[b3 & 0xf];
        }
        
        //字符數(shù)組轉(zhuǎn)為字符串
        return new String(chs);
    }

主函數(shù)測(cè)試

    public static void main(String[] args) throws NoSuchAlgorithmException {
        String data = "跳梁小豆tlxd666";
        String result = sha1(data);
        System.out.println("加密后:"+result);
    }    

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaWeb實(shí)現(xiàn)用戶登錄與注冊(cè)功能

    JavaWeb實(shí)現(xiàn)用戶登錄與注冊(cè)功能

    這篇文章主要為大家詳細(xì)介紹了JavaWeb實(shí)現(xiàn)用戶登錄與注冊(cè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java基礎(chǔ)第三篇 構(gòu)造器與方法重載

    Java基礎(chǔ)第三篇 構(gòu)造器與方法重載

    顯式初始化要求我們?cè)趯懗绦驎r(shí)就確定初始值,這有時(shí)很不方便。我們可以使用構(gòu)造器(constructor)來初始化對(duì)象。構(gòu)造器可以初始化數(shù)據(jù)成員,還可以規(guī)定特定的操作。這些操作會(huì)在創(chuàng)建對(duì)象時(shí)自動(dòng)執(zhí)行。下面文字將對(duì)該內(nèi)容做詳細(xì)介紹,需要的小伙伴請(qǐng)參考
    2021-09-09
  • 詳解MybatisPlus3.4版本之后分頁(yè)插件的使用

    詳解MybatisPlus3.4版本之后分頁(yè)插件的使用

    從Mybatis Plus 3.4.0版本開始,不再使用舊版本的PaginationInterceptor ,而是使用MybatisPlusInterceptor。本文就詳細(xì)的介紹一下兩者的區(qū)別,感興趣的可以了解一下
    2021-11-11
  • JavaWeb實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)數(shù)據(jù)的添加和刪除

    JavaWeb實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)數(shù)據(jù)的添加和刪除

    這篇文章主要介紹了如何利用JavaWeb實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)數(shù)據(jù)的添加和刪除功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-03-03
  • java 使用JDBC構(gòu)建簡(jiǎn)單的數(shù)據(jù)訪問層實(shí)例詳解

    java 使用JDBC構(gòu)建簡(jiǎn)單的數(shù)據(jù)訪問層實(shí)例詳解

    以下是如何使用JDBC構(gòu)建一個(gè)數(shù)據(jù)訪問層,包括數(shù)據(jù)轉(zhuǎn)換(將從數(shù)據(jù)庫(kù)中查詢的數(shù)據(jù)封裝到對(duì)應(yīng)的對(duì)象中……),數(shù)據(jù)庫(kù)的建立,以及如何連接到數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2016-11-11
  • java關(guān)于字符串的常用API

    java關(guān)于字符串的常用API

    字符串其實(shí)就是一串連續(xù)的字符,它是由許多單個(gè)字符連接而成的。如多個(gè)英文字母所組成的一個(gè)英文單詞。字符串中可以包含任意字符,這些字符必須包含在一對(duì)雙引號(hào)之內(nèi),今天就來介紹字符串常用的API
    2023-05-05
  • Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解

    Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解

    這篇文章主要介紹了Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解,Java不允許程序員選擇按值傳遞還是按引用傳遞各個(gè)參數(shù),就對(duì)象而言,不是將對(duì)象本身傳遞給方法,而是將對(duì)象的的引用或者說對(duì)象的首地址傳遞給方法,引用本身是按值傳遞的,需要的朋友可以參考下
    2023-07-07
  • spring boot項(xiàng)目打包成war在tomcat運(yùn)行的全步驟

    spring boot項(xiàng)目打包成war在tomcat運(yùn)行的全步驟

    這篇文章主要給大家介紹了關(guān)于spring boot項(xiàng)目打包成war在tomcat運(yùn)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Eclipse連接Mysql數(shù)據(jù)庫(kù)操作總結(jié)

    Eclipse連接Mysql數(shù)據(jù)庫(kù)操作總結(jié)

    這篇文章主要介紹了Eclipse連接Mysql數(shù)據(jù)庫(kù)操作總結(jié)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • Java Web最近面試題匯總

    Java Web最近面試題匯總

    在本篇文章里小編給大家整理的是一篇關(guān)于Java Web最近面試題匯總內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02

最新評(píng)論

鹤山市| 中西区| 江永县| 阜宁县| 个旧市| 金坛市| 泽普县| 拜泉县| 星座| 宁国市| 武冈市| 资源县| 景谷| 客服| 米林县| 云浮市| 濮阳县| 海丰县| 郁南县| 吕梁市| 长宁县| 秦皇岛市| 苏尼特右旗| 吉木萨尔县| 江永县| 南华县| 吐鲁番市| 西盟| 福清市| 莱阳市| 开远市| 潮安县| 麻城市| 乐亭县| 玉屏| 宜兰县| 调兵山市| 新干县| 塘沽区| 普兰县| 玉山县|