Created
March 19, 2018 10:02
-
-
Save kalgon/50e89ad05ddfff5ea387205aee8af358 to your computer and use it in GitHub Desktop.
Convert UUID to Base64
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.nio.ByteBuffer; | |
import java.util.Base64; | |
import java.util.UUID; | |
public enum UUID2Base64 { | |
BASIC(Base64.getEncoder(), Base64.getDecoder()), | |
MIME(Base64.getMimeEncoder(), Base64.getMimeDecoder()), | |
URL(Base64.getUrlEncoder(), Base64.getUrlDecoder()); | |
private final Base64.Encoder encoder; | |
private final Base64.Decoder decoder; | |
UUID2Base64(Base64.Encoder encoder, Base64.Decoder decoder) { | |
this.encoder = encoder.withoutPadding(); | |
this.decoder = decoder; | |
} | |
public UUID decode(String value) { | |
ByteBuffer buffer = ByteBuffer.wrap(decoder.decode(value)); | |
return new UUID(buffer.getLong(), buffer.getLong()); | |
} | |
public String encode(UUID value) { | |
ByteBuffer buffer = ByteBuffer.allocate(16).putLong(value.getMostSignificantBits()).putLong(value.getLeastSignificantBits()); | |
return encoder.encodeToString(buffer.array()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment