小编Cor*_*sys的帖子

Java中的DH密钥协议:为什么生成的密钥对于双方来说大多相同?

我正在尝试用Java创建一个非常简单的密钥交换.在代码和输出之后有问题:

 public class Blergh {

    public static KeyPair genKeyPair512() {
        try {
            AlgorithmParameterGenerator paramGen = AlgorithmParameterGenerator
                    .getInstance("DH");
            paramGen.init(512);

            BigInteger g = new BigInteger(
                    "7961C6D7913FDF8A034593294FA52D6F8354E9EDFE3EDC8EF082D36662D69DFE8CA7DC7480121C98B9774DFF915FB710D79E1BCBA68C0D429CD6B9AD73C0EF20",
                    16);
            BigInteger p = new BigInteger(
                    "00AC86AB9A1F921B251027BD10B93D0A8D9A260364974648E2543E8CD5C48DB4FFBEF0C3843465BA8DE20FFA36FFAF840B8CF26C9EB865BA184642A5F84606AEC5",
                    16);
            final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH");
            final DHParameterSpec dhSpec = new DHParameterSpec(p, g, 511);
            keyGen.initialize(dhSpec);
            return keyGen.generateKeyPair();

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (InvalidAlgorithmParameterException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static byte[] genSharedSecretKey(KeyPair keyPair,
            byte[] bytesPeerPublicKey) {
        PrivateKey privateKey = keyPair.getPrivate();

        try {
            X509EncodedKeySpec x509KeySpec …
Run Code Online (Sandbox Code Playgroud)

java cryptography

5
推荐指数
2
解决办法
2190
查看次数

标签 统计

cryptography ×1

java ×1