Rumah >pangkalan data >tutorial mysql >Adakah Pengekodan Base64 Kaedah Cekap untuk Penyimpanan UUID Padat?
Pengekodan Base64 untuk Storan UUID Padat
Soalan:
Adakah terdapat sebarang masalah dengan penyimpanan UUID sebagai rentetan base64 dengan mengekori aksara "==" dialih keluar untuk meminimumkan ruang?
Jawapan:
Pengekodan Base64 boleh meminimumkan saiz UUID dengan berkesan sambil mengekalkan kebolehbacaan. Walau bagaimanapun, adalah penting untuk menyahkod rentetan dengan betul untuk memulihkan UUID asal.
Berikut ialah pelaksanaan praktikal dalam 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(); } }
Penggunaan:
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));
Pendekatan ini menghilangkan padding "==" yang mengekori untuk menghasilkan rentetan 22 aksara padat yang boleh dinyahkodkan dengan mudah kembali kepada UUID asal.
Atas ialah kandungan terperinci Adakah Pengekodan Base64 Kaedah Cekap untuk Penyimpanan UUID Padat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!