Anzure Skrevet 8. juli 2015 Skrevet 8. juli 2015 Hvordan kan jeg hashe et passord med salt i Java? Jeg ønsker også å øke kostnaden ettersom server prosessoren er ganske bra.
Anzure Skrevet 9. juli 2015 Forfatter Skrevet 9. juli 2015 Glem det, fant det ut nå. public final int ITERATIONS = 1000000; public final int KEY_LENGTH = 192; public final String ALGORITHM = "PBKDF2WithHmacSHA1"; public String getHash(String text, String salt){ try { char[] textChars = text.toCharArray(); byte[] saltBytes = salt.getBytes(); PBEKeySpec spec = new PBEKeySpec(textChars, saltBytes, ITERATIONS, KEY_LENGTH); SecretKeyFactory key = SecretKeyFactory.getInstance(ALGORITHM); byte[] hashedPassword = key.generateSecret(spec).getEncoded(); return String.format("%x", new BigInteger(hashedPassword)); } catch (Exception e) { e.printStackTrace(); } return null; } public String getSalt() { try { SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); byte[] salt = new byte[16]; sr.nextBytes(salt); String encodedSalt = Base64.encode(salt); return encodedSalt; } catch (Exception e) { e.printStackTrace(); } return null; }
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå