You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Copyright 2014-2023 The GmSSL Project. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
package org.gmssl;
import org.junit.Assert;
import org.junit.Test;
/**
* @author yongfeili
* @email 290836576@qq.com
* @date 2023/10/20
* @description Sm3Pbkdf2 unit test
*/
public class Sm3Pbkdf2Test {
/**
* PBKDF2 (Password-Based Key Derivation Function 2) is a cryptographic algorithm used to derive a key from a password.
* It employs a pseudorandom function to generate the key, and the length of the derived key can be arbitrarily chosen. However, PBKDF2 allows for multiple iterations of the computation to further enhance security.
* By incorporating a salt value (random data) along with the plaintext password, PBKDF2 generates a salted key, which greatly improves resistance against attacks like rainbow table attacks.
*/
@Test
public void deriveKeyTest(){
Sm3Pbkdf2 kdf = new Sm3Pbkdf2();
Random rng = new Random();
byte[] salt = rng.randBytes(Sm3Pbkdf2.DEFAULT_SALT_SIZE);