package com.zy.iot.util; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.Locale; import java.util.UUID; public final class IotInstructionIdGenerator { private IotInstructionIdGenerator() { } public static String generate() { return generate(UUID.randomUUID() + "-" + System.nanoTime()); } public static String generate(String seed) { try { MessageDigest digest = MessageDigest.getInstance("SHA-1"); byte[] hash = digest.digest(seed.getBytes(StandardCharsets.UTF_8)); StringBuilder builder = new StringBuilder(); for (byte item : hash) { builder.append(String.format(Locale.ROOT, "%02x", item)); } return builder.substring(0, 20).toUpperCase(Locale.ROOT); } catch (Exception e) { throw new IllegalStateException("generate iot instruction id failed", e); } } }