0

これが.netのコードです

public string GetMD5Hash(string name) {
    MD5 md5 = new MD5CryptoServiceProvider();
    byte[] ba = md5.ComputeHash(Encoding.UTF8.GetBytes(name));
    StringBuilder hex = new StringBuilder(ba.Length * 2);

    foreach (byte b in ba)
        hex.AppendFormat("{0:x2}", b);
    return Convert.ToString(hex);
}

そしてphpで私は以下のコードを使用しています

class foobar {

    public function str2hex($string) {
        $hex = "";
        for ($i = 0; $i < strlen($string); $i++)
            $hex .= (strlen(dechex(ord($string[$i]))) < 2) ? "0" . dechex(ord($string[$i])) : dechex(ord($string[$i]));       
        return $hex;
    }

    public function GetMD5($pStr) { 
        $data = mb_convert_encoding($pStr, 'UTF-16LE', 'UTF-8');
        $h = $this->str2hex(md5($data, true)); 
        return $h;
    } 
}

$foobar = new foobar;  
$nisha =$foobar->GetMD5('5698882');
echo "</br>";
echo $nisha;

しかし、出力は.net暗号化出力と一致しません。両方とも異なります

4

1 に答える 1