У меня есть следующий код в Python:Преобразование байта в целое число в Java против Python
myBytes = m.digest()
for one in myBytes:
print(one, end=' ')
print(end='\n')
intlist = int.from_bytes(myBytes, 'little')
print("intlist", intlist)
выше код печатает следующий результат
IntList 306485766027497339553611008967975560776
Теперь я хочу добиться того же результата в java. Это мой код до сих пор:
byte[] myBytes = md.digest();
System.out.println(Arrays.toString(myBytes));
BigInteger intlist = new BigInteger(myBytes);
System.out.println("intlist=" + intlist);
и результат я получаю от этого следующий:
[72, -26, -90, 56, 69, 98, 5, -67 , 49, 43, -127, 54, -19, 2, -109, -26 ]
IntList = 96902015312221227689534558263304164326
результат в Java не так за то, что я хочу сделать. Я хочу получить те же значения, что и в коде python.
Любые идеи?
Вы проверили порядок байтов? Java - это большой Endian по умолчанию – Cyb3rFly3r