Иногда UUID не подходит и нужен ID, который стабилен и повторяем. Удобно для кэшей, ключей и записей.
Задаём входные данные, из которых будем делать ID:
String input = "user:alice@example.com";
Хешируем строку алгоритмом SHA-256:
var md = java.security.MessageDigest.getInstance("SHA-256");
byte[] hash = md.digest(input.getBytes(java.nio.charset.StandardCharsets.UTF_8));Переводим байты в компактный HEX-вид:
var sb = new StringBuilder();
for (byte b : hash) sb.append(String.format("%02x", b));
Берём первые 12 символов:
String id = sb.substring(0, 12);
System.out.println("ID: " + id);
Можно менять длину ID и использовать как ключ в базе, кэше или логах.
👉 Java Ready | #практика