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);
|
}
|
}
|
}
|