<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MD5加密

    Posted on 2008-10-21 23:36 viita 閱讀(1037) 評論(0)  編輯  收藏 所屬分類: struts
     MD5的全稱是Message-digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest開發出來,經MD2、MD3和MD4發展而來。

            不管是MD2、MD4還是MD5,它們都需要獲得一個隨機長度的信息并產生一個128位的信息摘要。

            在MD5算法中,首先需要對信息進行填充,使其字節長度對512求余的結果等于448。因此,信息的字節長度(Bits Length)將被擴展至N*512+448,即N*64+56個字節(Bytes),N為一個正整數。填充的方法如下,在信息的后面填充一個1和無數個0,直到滿足上面的條件時才停止用0對信息的填充。然后,在在這個結果后面附加一個以64位二進制表示的填充前信息長度。經過這兩步的處理,現在的信息字節長度=N*512+448+64=(N+1)*512,即長度恰好是512的整數倍。這樣做的原因是為滿足后面處理中對信息長度的要求。

            具體的一個MD5實現:

     1package com.meng;
     2
     3
     4import java.security.MessageDigest;
     5
     6/**
     7* <p>
     8* Title:
     9* </p>
    10* <p>
    11* Description:
    12* </p>
    13* <p>
    14* Copyright: Copyright (c) 2003
    15* </p>
    16* <p>
    17* Company:
    18* </p>
    19
    20@author unascribed
    21@version 1.0
    22*/

    23
    24public class MD5 {
    25
    26    private final static String[] hexDigits = "0""1""2""3""4""5",
    27            "6""7""8""9""a""b""c""d""e""f" }
    ;
    28
    29    /**
    30     * 轉換字節數組為16進制字串
    31     * 
    32     * @param b
    33     *            字節數組
    34     * @return 16進制字串
    35     */

    36
    37    public static String byteArrayToHexString(byte[] b) {
    38        StringBuffer resultSb = new StringBuffer();
    39        for (int i = 0; i < b.length; i++{
    40            resultSb.append(byteToHexString(b[i]));
    41        }

    42        return resultSb.toString();
    43    }

    44
    45    private static String byteToHexString(byte b) {
    46        int n = b;
    47        if (n < 0)
    48            n = 256 + n;
    49        int d1 = n / 16;
    50        int d2 = n % 16;
    51        return hexDigits[d1] + hexDigits[d2];
    52    }

    53
    54    public static String MD5Encode(String origin) {
    55        String resultString = null;
    56
    57        try {
    58            resultString = new String(origin);
    59            MessageDigest md = MessageDigest.getInstance("MD5");
    60            resultString = byteArrayToHexString(md.digest(resultString
    61                    .getBytes()));
    62        }
     catch (Exception ex) {
    63
    64        }

    65        return resultString;
    66    }

    67
    68    public static void main(String[] args) {
    69        System.err.println(MD5Encode("哈哈"));
    70
    71
    72        
    73    }

    74}

    75
    76

    posts - 11, comments - 18, trackbacks - 0, articles - 4

    Copyright © viita

    主站蜘蛛池模板: 亚洲高清无在码在线无弹窗| 国产精品亚洲精品观看不卡| 91视频免费网址| 国产成人精品日本亚洲专一区| 四色在线精品免费观看| 99久久精品毛片免费播放| 亚洲国产午夜电影在线入口| 日韩亚洲精品福利| 无码中文字幕av免费放dvd| 亚洲精品宾馆在线精品酒店| 亚洲精品无码永久中文字幕| 成年性午夜免费视频网站不卡| 国产免费高清69式视频在线观看| 亚洲成a人片在线观看中文!!!| 亚洲国产精品自在拍在线播放| 2021精品国产品免费观看| 杨幂最新免费特级毛片| 亚洲人成网网址在线看| 亚洲爽爽一区二区三区| 久久久久久99av无码免费网站| 国产一二三四区乱码免费| 亚洲国产精品嫩草影院| 久久久久亚洲AV无码观看| 国产偷窥女洗浴在线观看亚洲| 成人免费无码大片a毛片软件| 成人网站免费看黄A站视频| 特级av毛片免费观看| 亚洲国产成人99精品激情在线| 亚洲精品成人片在线播放| 又黄又大又爽免费视频| 亚洲成在人线aⅴ免费毛片| 国色精品va在线观看免费视频| 添bbb免费观看高清视频| 亚洲伦理中文字幕| 亚洲天天做日日做天天看| 久久久久国产成人精品亚洲午夜| 日韩免费视频播放| 成人免费a级毛片| 999在线视频精品免费播放观看| 国色精品va在线观看免费视频 | 无码午夜成人1000部免费视频|