PBKDF2-SHA256 HASH ALGORITHM Проблема алгоритмаJAVA

Программисты JAVA общаются здесь
Anonymous
PBKDF2-SHA256 HASH ALGORITHM Проблема алгоритма

Сообщение Anonymous »

Помогите мне, пожалуйста!
Я пытаюсь хэшировать пароль, используя алгоритм PBKDF2-SHA256.
password = "user1", salt = "ifo7kxyswe7fiu3bovnowg =", hashiterations = "27500".
Я знаю результат. Это должно быть похоже на "Znxo94AyITK7t+OJ1PXPZTVEQ+G82LFWT6VNSTBHZPEUWZGMPRJJVKAUEXGHGH1IQPZWMX1SRVTUMLN /JCM8GC4G ==". Encryptor (https://8gwifi.org/pbkdf.jsp) - Соответствует. Возможно, проблема в кодировке. Где я делаю ошибку? Спасибо! < /P>
Мой код: < /p>
import org.apache.commons.codec.binary.Hex;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.spec.KeySpec;
import java.util.Base64;

String PASSWORD = "user1";
String SALT = "IFo7KXYswe7Fiu3BoVNOWg==";
int ITERATION_COUNT = 27500;
int KEY_LENGTH = 256;

KeySpec spec = new PBEKeySpec(
PASSWORD.toCharArray(),
SALT.getBytes(),
ITERATION_COUNT,
KEY_LENGTH
);
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
SecretKey secretKey = factory.generateSecret(spec);
byte[] hash = secretKey.getEncoded();

System.out.println("----hashStr----");
System.out.println(new String(hash, StandardCharsets.UTF_8));
System.out.println("----hashStrBase64----");
System.out.println(Base64.getEncoder().encodeToString(hash));
System.out.println("----hexHashString----");
System.out.println(Hex.encodeHexString(hash));
< /code>
Результат: < /p>
----hashStr----
=�I ��'��mh�W0y"��H��a�
�y
----hashStrBase64----
Pe0BSRYglbEn+/htaPxXMA95IozqSJPisGGwChuheSA=
----hexHashString----
3ded0149162095b127fbf86d68fc57300f79228cea4893e2b061b00a1ba17920


Подробнее здесь: https://stackoverflow.com/questions/670 ... ithm-issue

Вернуться в «JAVA»