package net.curisit.securis.utils; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class LicUtils { private static final Logger LOG = LogManager.getLogger(LicUtils.class); public static String md5(String str) { try { MessageDigest mDigest = MessageDigest.getInstance("MD5"); mDigest.update(str.getBytes(), 0, str.length()); BigInteger i = new BigInteger(1, mDigest.digest()); return String.format("%1$032x", i); } catch (NoSuchAlgorithmException e) { LOG.error("Error generating MD5 for string: " + str, e); } return null; } public static String sha256(String str) { return sha256(str.getBytes()); } public static String sha256(byte[] bytes) { try { MessageDigest mDigest = MessageDigest.getInstance("SHA-256"); mDigest.update(bytes, 0, bytes.length); BigInteger i = new BigInteger(1, mDigest.digest()); return String.format("%1$064x", i); } catch (NoSuchAlgorithmException e) { LOG.error("Error generating SHA-256 for bytes: " + bytes, e); } return null; } public static String sha256(byte[]... bytes) { try { MessageDigest mDigest = MessageDigest.getInstance("SHA-256"); for (byte[] bs : bytes) { mDigest.update(bs, 0, bs.length); } BigInteger i = new BigInteger(1, mDigest.digest()); return String.format("%1$064x", i); } catch (NoSuchAlgorithmException e) { LOG.error("Error generating SHA-256 for bytes: " + bytes, e); } return null; } }