0
나는 키를했습니다 :BigInteger를 HMAC 변환 anomalie
byte: 0011100101010111000101111100101101100010100010111001010010000000
메시지 : 진수의
byte: 10110001
HMAC 출력 : 그래서
HMAC-SHA256: ca3871e40207fc0cd66558e4e4fa2817d283da605c15e4c941ff7945ad4be29f
나는 새로운 BigInteger의를 만드는 경우 (테스트) :
BigInteger test = new BigInteger(hmac);
그리고 난 다시 같은 16 진수 값을 얻으려면 :
output: -35c78e1bfdf803f3299aa71b1b05d7e82d7c259fa3ea1b36be0086ba52b41d61
경우 문제가 :
System.out.println("\noutput: " + test.toString(16));
나는이 얻을? 또는 어떻게 메시지에서 hmac-sha256을 계산하고 BigIntegers를 beginnning에서 사용할 수 있습니까?
키, 메시지 및 hmac는 바이트 배열입니다.
"11010100"바이트를 BigInteger로 변환하려고하면 음의 "-101100"이됩니다. 왜 BigInteger가 음수 값을 변환합니까? 첫 번째 비트는 부호 비트입니다. 어떻게 부호 비트를 비활성화 할 수 있습니까?
당신'hmac' 변수의 정확한 값은 무엇입니까? – jlordo
ca3871e40207fc0cd66558e4e4fa2817d283da605c15e4c941ff7945ad4be29f – x4k3p
게시 한 코드가 'NumberFormatException'을 던 졌기 때문에 문제를 재현 할 수 없습니다 ... – jlordo