Преобразование toHexString и MessageDigest в Java в эквивалент C # - PullRequest
0 голосов
/ 07 ноября 2018

У меня проблема с преобразованием следующего кода Java в toHexString и MessageDigest, эквивалентный коду C # .net. Я трачу много времени на их преобразование, но, похоже, результат никогда не будет прежним.

Пожалуйста, помогите мне, особенно в части toHexString.

import java.security.MessageDigest;
import java.util.Arrays;

public class Test
{
    public static void main(String[] args) throws Exception
    {
        String keyString = "01100880200013048720181107174008PC".toString();
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        md5.update(keyString.getBytes("utf-8"));

        byte[] temp = md5.digest("".getBytes("utf-8"));

        String result = "";
        for (int i = 0; i < temp.length; ++i) {
            result = result + Integer.toHexString(0xFF & temp[i] | 0xFFFFFF00).substring(6);
        }
        System.out.println(result);
    }
}

1 Ответ

0 голосов
/ 07 ноября 2018

Вы можете получить шестнадцатеричное string представление int, вызвав для него метод .ToString("X2"). Здесь - документация для дополнительных опций.

Чтобы получить первые 6 символов, вы можете вызвать .SubString(0, 6) в шестнадцатеричном значении.

...