2

最近、バイト配列を 16 進文字列に変換するエンコーディングを探していました。1つには、次のようなものを見つけました: how to convert hex to byte for the following program?

私はすでにこれを試しました:

StringBuffer stringbuffer = new StringBuffer(cipherbyte.length * 2);
    for (int i = 0; i < cipherbyte.length; i++) {
        if ((cipherbyte[i] & 0xff) < 0x10 ) {
            stringbuffer.append("0");
        }
        stringbuffer.append(Long.toString(cipherbyte[i] & 0xff, 16));
    }
    String ciphertext = stringbuffer.toString();
    return ciphertext;

デコード用:

byte[] bytes = new byte[message.length() / 2];
    for (int i = 0; i < message.length(); i = i+2) {
        String substr = message.substring(i, i+2);
        bytes[i/2] = ((byte) Integer.parseInt(substr, 16));
    } 

しかし、これらのアルゴリズムがどのように機能するかを詳しく知りません。誰かがこれを説明できますか?

4

1 に答える 1