package regalowl.hyperconomy; import java.math.BigInteger; import java.security.MessageDigest; import java.security.SecureRandom; import javax.xml.bind.annotation.adapters.HexBinaryAdapter; import org.bukkit.entity.Player; public class Setpassword { Setpassword(String args[], Player player) { HyperConomy hc = HyperConomy.hc; LanguageFile L = hc.getLanguageFile(); if (args.length == 1 && player != null) { HyperPlayer hp = hc.getEconomyManager().getHyperPlayer(player.getName()); String salt = generateSecureSalt(); hp.setSalt(salt); String hash = sha256Digest(args[0] + salt); hp.setHash(hash); player.sendMessage(L.get("SETPASSWORD_SUCCESS")); } else { player.sendMessage(L.get("SETPASSWORD_INVALID")); } } public String sha256Digest(String string) { try { return (new HexBinaryAdapter()).marshal(MessageDigest.getInstance("SHA-256").digest(string.getBytes())); } catch (Exception e) { return ""; } } public String generateSecureSalt() { SecureRandom random = new SecureRandom(); return new BigInteger(130, random).toString(32); } }