現在我明白了java沒有無符號字節,但我不知道如何解決這個如果不是。 我想在java中實現SHA256散列,並且我正在處理將消息轉換爲512位。Java整數/雙無符號字節
int l = bytes.length; //total amount of bytes in the original message
int k = 0;
while((l+1+k) % 512 != 448) {
k++;
}
//k is the total amount of 0's to be padded
int rest = k % 8; //get the amount of 0's to be added in the byte with the 1
byte tmp =(byte) Math.pow(2, rest);
所以關鍵是指令中的最後一行,如果其餘= 7所得int是128,但字節在Java簽署並因此變得字節0x80的代替0XF0。 我如何在Java中實現這一點?
如果任何人有關於如何實現這個部分的想法請讓我知道。
爲什麼128會是'0xF0'? – khelwood
正確的,「休息」應該是一個從0到7的數字,它們都已經是正數,並且適合在「字節」範圍內。我想你可能有另一個問題。 – markspace
只是爲了記錄:這是爲了學習的目的?你知道在現實世界中實現你自己的密碼學通常是非常糟糕的主意嗎? – GhostCat