Anzure Skrevet 8. juli 2015 Del 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. Lenke til kommentar
Anzure Skrevet 9. juli 2015 Forfatter Del 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; } Lenke til kommentar
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å