Я работаю над небольшой задачей, которая требует некоторой кодировки base64. Я пытаюсь сделать это в голове, но теряюсь.
У меня есть 13-значный номер в длинном формате Java, скажем: 1294705313608, 1294705313594, 1294705313573
Я делаю некоторую обработку с ним, в основном, я беру это число, добавляю его с вещами, помещаю его в байтовый массив и затем конвертирую в base64, используя:
String b64String = new sun.misc.BASE64Encoder().encodeBuffer(bArray);
Теперь я знаю, что для моего оригинального номера первые 3 цифры никогда не изменятся. Таким образом, 129 является постоянным в приведенных выше числах. Я хочу узнать, сколько символов, соответствующих этим цифрам, не изменилось бы в результирующей строке base64.
Код для сериализации в длину в байтовый массив. Я игнорирую первые 2 байта, так как они всегда 0:
bArray [0] = (byte) (время >>> 40);
bArray [1] = (byte) (время >>> 32);
bArray [2] = (byte) (время >>> 24);
bArray [3] = (byte) (время >>> 16);
bArray [4] = (byte) (время >>> 8);
bArray [5] = (byte) (время >>> 0);
Спасибо.
Примечания:
Я знаю, что base64 будет занимать 6 битов и сделает из него один символ. Так что, если первые 3 цифры не меняются в течение долгого времени, сколько символов не изменится в base64.
Это НЕ в задании HW, но я не очень знаком с кодировкой.