Hashes.java
package com.rbctcsworld.ecommerce.auth;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HexFormat;
/** SHA-256 as hex: refresh tokens are stored hashed, Redis keys never contain an e-mail in clear text. */
final class Hashes {
private Hashes() {
}
static String sha256Hex(String value) {
try {
byte[] digest = MessageDigest.getInstance("SHA-256").digest(value.getBytes(StandardCharsets.UTF_8));
return HexFormat.of().formatHex(digest);
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("SHA-256 is part of every JVM", e);
}
}
}