紧凑 UUID 存储的 Base64 编码
问题:
存储有任何问题吗作为 Base64 字符串的 UUID,删除尾随“==”字符以最小化空格?
答案:
Base64 编码可以有效地最小化 UUID 的大小,同时保持可读性。但是,正确解码字符串以恢复原始 UUID 至关重要。
这是 Java 中的实际实现:
import org.apache.commons.codec.binary.Base64; public class UUIDBase64 { public static String uuidToBase64(String uuid) { UUID myUUID = UUID.fromString(uuid); ByteBuffer bb = ByteBuffer.wrap(new byte[16]); bb.putLong(myUUID.getMostSignificantBits()); bb.putLong(myUUID.getLeastSignificantBits()); return new Base64().encodeBase64URLSafeString(bb.array()); } public static String uuidFromBase64(String base64UUID) { Base64 base64 = new Base64(); byte[] bytes = base64.decodeBase64(base64UUID); ByteBuffer bb = ByteBuffer.wrap(bytes); UUID myUUID = new UUID(bb.getLong(), bb.getLong()); return myUUID.toString(); } }
用法:
String uuid = "6fcb514b-b878-4c9d-95b7-8dc3a7ce6fd8"; String base64UUID = UUIDBase64.uuidToBase64(uuid); System.out.println("Base64 UUID: " + base64UUID); String decodedUUID = UUIDBase64.uuidFromBase64(base64UUID); System.out.println("Decoded UUID: " + decodedUUID); System.out.println("Equal?: " + uuid.equals(decodedUUID));
这种方法删除了尾随的“==”填充,以生成一个紧凑的 22 个字符的字符串,可以轻松解码回原始 UUID。
以上是Base64 编码是紧凑 UUID 存储的有效方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!