· 7 years ago · Jun 08, 2018, 03:40 PM
1import java.util.Random;
2import javax.crypto.Cipher;
3import javax.crypto.SecretKey;
4import javax.crypto.SecretKeyFactory;
5import javax.crypto.spec.PBEKeySpec;
6import javax.crypto.spec.PBEParameterSpec;
7
8...
9
10byte[] salt = new byte[8];
11Random rand = new Random();
12rand.nextBytes(salt);
13
14PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
15SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithSHAAndTwofish-CBC");
16SecretKey key = keyFactory.generateSecret(keySpec);
17PBEParameterSpec paramSpec = new PBEParameterSpec(salt, 1000);
18
19Cipher cipher = Cipher.getInstance("PBEWithSHAAndTwofish-CBC");
20cipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
21byte[] ciphertext = cipher.doFinal(plaintext);