我正在審查一些應該處理加密的代碼,我發(fā)現(xiàn)了一個我不理解的步驟:StringBuilder encryptedPaddedMessage = new StringBuilder(encryptedMessage.length * 2); for (int i = 0; i < encryptedMessage.length; i++) { if (((int) encryptedMessage[i] & 0xff) < 0x10) { encryptedPaddedMessage.append("0"); } encryptedPaddedMessage.append(Long.toString((int) encryptedMessage[i] & 0xff, 16));}誰能解釋這段代碼的目的是什么?
1 回答

莫回無
TA貢獻1865條經驗 獲得超7個贊
0
當它小于0x10
(并且將是一個十六進制數(shù)字)時,它會在每個字節(jié)的十六進制輸出中添加前導。
它可以被重寫:
encryptedPaddedMessage.append(String.format("%02x", encryptedMessage[i] & 0xff));
請注意,它并不是真正的“加密”,而是“編碼”為十六進制字符串。
添加回答
舉報
0/150
提交
取消