Алгоритм сокращения URL-адресов

Речь идет не только о сокращении URL-адресов, но в любом случае моя цель такова, поэтому давайте рассмотрим это так. Конечно, шаги по сокращению URL следующие:

  1. Возьмите полный URL
  2. Создайте уникальную короткую строку, которая будет ключом для URL.
  3. Сохраните 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

Достаточно ли этого?

20
задан Peter Mortensen 19 March 2011 в 16:27
поделиться