package org.molgenis.gavin.controller;
import com.google.common.io.BaseEncoding;
import org.molgenis.data.populate.IdGenerator;
import java.nio.ByteBuffer;
import java.util.UUID;
/**
* Generates secure IDs.
* <p>
* The IDs should be hard to guess, so therefore cannot be in order like the normal {@link org.molgenis.data.populate.UuidGenerator} makes them.
*/
class SecureIdGenerator implements IdGenerator
{
private final BaseEncoding baseEncoding = BaseEncoding.base32().omitPadding();
@Override
public String generateId()
{
UUID uuid = UUID.randomUUID();
ByteBuffer buffer = ByteBuffer.allocate(2 * Long.BYTES);
buffer.putLong(uuid.getMostSignificantBits());
buffer.putLong(uuid.getLeastSignificantBits());
return baseEncoding.encode(buffer.array());
}
}