Теперь это не относится к сокращению URL-адресов, но моя цель такая, так что давайте посмотрим на нее так. Конечно, шаги по сокращению URL-адреса:
- Возьмите полный URL
- Создайте уникальную короткую строку, которая будет ключом для URL
- Сохраните URL-адрес и ключ в базе данных (хранилище с ключом будет идеально сочетаться здесь)
Теперь о втором пункте. Вот что я придумал:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
UUID uuid = UUID.randomUUID();
dos.writeLong(uuid.getMostSignificantBits());
String encoded = new String(Base64.encodeBase64(baos.toByteArray()), "ISO-8859-1");
String shortUrlKey = StringUtils.left(encoded, 6); // returns the leftmost 6 characters
// check if exists in database, repeat until it does not
Достаточно ли это?