gpt4 book ai didi

java - Java 中的 Diffie-Hellman key 交换

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:55:44 27 4
gpt4 key购买 nike

我正在使用 Java 开发一个个人项目,其中涉及通过不安全的 channel 发送敏感数据。我需要知道如何使用它的库在 java 中实现 Diffie Hellman key 交换 (DHKE)。我知道所有关于它的密码学理论,所以不需要详细说明,我只需要一个非常基本的实现,这样我就可以让 2 个程序共享一个 key 。我从 java2s.com 得到了示例,但它并不完整:

import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.SecureRandom;

import javax.crypto.spec.DHParameterSpec;
import javax.crypto.spec.DHPublicKeySpec;

public class Main {
public final static int pValue = 47;

public final static int gValue = 71;

public final static int XaValue = 9;

public final static int XbValue = 14;

public static void main(String[] args) throws Exception {
BigInteger p = new BigInteger(Integer.toString(pValue));
BigInteger g = new BigInteger(Integer.toString(gValue));
BigInteger Xa = new BigInteger(Integer.toString(XaValue));
BigInteger Xb = new BigInteger(Integer.toString(XbValue));

int bitLength = 512; // 512 bits
SecureRandom rnd = new SecureRandom();
p = BigInteger.probablePrime(bitLength, rnd);
g = BigInteger.probablePrime(bitLength, rnd);

createSpecificKey(p, g);
}

public static void createSpecificKey(BigInteger p, BigInteger g) throws Exception {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DiffieHellman");

DHParameterSpec param = new DHParameterSpec(p, g);
kpg.initialize(param);
KeyPair kp = kpg.generateKeyPair();

KeyFactory kfactory = KeyFactory.getInstance("DiffieHellman");

DHPublicKeySpec kspec = (DHPublicKeySpec) kfactory.getKeySpec(kp.getPublic(),
DHPublicKeySpec.class);
}
}

我该如何继续?谁能帮我完成剩下的代码?

最佳答案

the official Oracle Docs呢? ?他们在那里的代码中显示了 DH key 交换。

关于java - Java 中的 Diffie-Hellman key 交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21081713/

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