我正在審查一些應(yīng)該處理加密的代碼,我發(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 回答

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