第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

那位大神能把我這個(gè)Java的md5的加密方法寫(xiě)個(gè)php版本哦,感激噢!

那位大神能把我這個(gè)Java的md5的加密方法寫(xiě)個(gè)php版本哦,感激噢!

四季花海 2019-04-10 14:15:36
那位大神能把我這個(gè)Java的md5的加密方法寫(xiě)個(gè)php版本哦,感激噢,Java代碼如下!寫(xiě)這個(gè)的人 描述的思路如下1.將秘鑰、源串分別轉(zhuǎn)換byte數(shù)組2.聲明2個(gè)64位數(shù)組 將key的byte數(shù)組分別做異或運(yùn)算填充進(jìn)去 并分別補(bǔ)充 54、92 補(bǔ)滿(mǎn)64長(zhǎng)度3.獲得md5摘要算法的MessageDigest 對(duì)象4.使用其中一個(gè)數(shù)組及源串的數(shù)組更新MessageDigest 摘要 完成哈希計(jì)算5.重置摘要 6.使用另一個(gè)數(shù)組更新摘要 使用4中結(jié)果 從0到16開(kāi)始更新摘要 完成哈希計(jì)算7.轉(zhuǎn)換字符串public String cryptMd5(String source, String key) { byte[] k_ipad = new byte[64];byte[] k_opad = new byte[64];byte[] keyb;byte[] value;try { byte[] keyb = key.getBytes("UTF-8");value = source.getBytes("UTF-8");}catch (UnsupportedEncodingException e){byte[] value;keyb = key.getBytes();value = source.getBytes();}Arrays.fill(k_ipad, keyb.length, 64, 54);Arrays.fill(k_opad, keyb.length, 64, 92);for (int i = 0; i < keyb.length; i++){k_ipad[i] = (byte)(keyb[i] ^ 0x36);k_opad[i] = (byte)(keyb[i] ^ 0x5C);}MessageDigest md = null;try{md = MessageDigest.getInstance("MD5");}catch (NoSuchAlgorithmException e){return null;}md.update(k_ipad);md.update(value);byte[] dg = md.digest();md.reset();md.update(k_opad);md.update(dg, 0, 16);dg = md.digest();return toHex(dg); }public static String toHex(byte[] input){if (input == null) {return null;}StringBuffer output = new StringBuffer(input.length * 2);for (int i = 0; i < input.length; i++){int current = input[i] & 0xFF;if (current < 16)output.append("0");output.append(Integer.toString(current, 16));}return output.toString();}
查看完整描述

3 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

 function cryptMd5($source, $key) {
  if(! mb_check_encoding($source, 'utf-8')) $source = mb_convert_encoding($source, "utf-8", "auto");
  if(! mb_check_encoding($key, 'utf-8')) $key = mb_convert_encoding($key, "utf-8", "auto");
  $k_ipad = str_pad($key, 64, chr(54));  
  $k_opad = str_pad($key, 64, chr(92));
  for($i=0; $i<strlen($key); $i++) {
    $k_ipad{$i} = $key{$i} ^ chr(0x36);
    $k_opad{$i} = $key{$i} ^ chr(0x5c);
  }
  $dg = md5($source . substr($k_ipad, strlen($source)), true);
  $dg = md5(substr($dg, 0, 16) . substr($k_opad, 16), true);
  return bin2hex($dg);
}


查看完整回答
反對(duì) 回復(fù) 2019-05-07
?
開(kāi)心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

我想說(shuō)你的代碼里好像有點(diǎn)問(wèn)題。所以對(duì)理解你的代碼有點(diǎn)困難。有些可以大體猜到你的目的。但是下邊這兩句就很難猜了:
Arrays.fill(k_ipad, keyb.length, 64, 54);
Arrays.fill(k_opad, keyb.length, 64, 92);

最后一個(gè)參數(shù)應(yīng)該是byte變量吧。


查看完整回答
反對(duì) 回復(fù) 2019-05-07
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

public function md5Encrypt($encryptString='', $encryptKey='')
    {
        $keyByte = $this->getBytes($encryptKey);

        $keyIpad = array();
        for ($i = 0; $i < 64; $i++) {
            $keyIpad[] = (isset($keyByte[$i]) ? $keyByte[$i] : 0) ^ 54;
        }
        $keyOpad = array();
        for ($i = 0; $i < 64; $i++) {
            $keyOpad[] = (isset($keyByte[$i]) ? $keyByte[$i] : 0) ^ 92;
        }
              $string = md5($this->byteToString($keyIpad) . $encryptString);
        $string = substr(hex2bin($string), 0, 16);
        $signature = md5($this->byteToString($keyOpad). ($string));
        return $signature;
    }

        private function getBytes($string)
    {
        $bytes = array();
        for ($i = 0; $i < strlen($string); $i++) {
            $bytes[] = ord($string[$i]);
        }
        return $bytes;
    }

    private function byteToString($args = array()){
        $str = '';
        for ($i = 0; $i < count($args); $i++) {
            $str .= chr($args[$i]);
        }
          return $str;
    }


查看完整回答
反對(duì) 回復(fù) 2019-05-07
  • 3 回答
  • 0 關(guān)注
  • 686 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)