gpt4 book ai didi

java - 使用 JCE/JCA 从主 key 派生 secret

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:45 24 4
gpt4 key购买 nike

有人能给我指出正确的方向吗?

我想使用 JCE/JCA 从主 key 派生新 key ,我该如何实现?

问候。

最佳答案

JCA 提供标准的基于密码的 key 派生函数,如 PKCS#5 v2.0 中定义的 PBKDF2|和 RFC 2898 .该算法从主 secret (密码)中创建一些随机 Material ,以生成适合给定密码的 key 。

public byte[] deriveKey(String password, byte[] salt, int keyLen) {
SecretKeyFactory kf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
KeySpec specs = new PBEKeySpec(password.toCharArray(), salt, 1024, keyLen);
SecretKey key = kf.generateSecret(specs);
return key.getEncoded();
}

public byte[] encrypt(String password, byte[] plaintext) {
byte[] salt = new byte[64];
Random rnd = new Random();
rnd.nextByte(salt);
byte[] data = deriveKey(password, salt, 192);
SecretKey desKey = SecretKeyFactory.getInstance("DESede").generateSecret(new DESedeKeySpec(data));
Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, desKey);
return cipher.doFinal(plaintext);
}

关于java - 使用 JCE/JCA 从主 key 派生 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4513433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com