> Java > java지도 시간 > SSL 핸드셰이크 중에 'DH 키 쌍을 생성할 수 없습니다' 오류가 발생하는 이유는 무엇입니까?

SSL 핸드셰이크 중에 'DH 키 쌍을 생성할 수 없습니다' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-06 21:07:14
원래의
725명이 탐색했습니다.

Why Am I Getting a

오류: SSL 핸드셰이크 중 'DH 키 쌍을 생성할 수 없습니다'

문제:

특정 IRC 서버와 SSL 연결을 설정할 때 개발자는 다음과 같은 문제에 직면합니다. 예외:

java.lang.RuntimeException: Could not generate DH keypair
...
java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
로그인 후 복사

답변:

이 문제의 근본 원인은 DH(Diffie-Hellman) 키 교환 알고리즘에 사용되는 "소수 크기"입니다. Java의 기본 SSL 구현은 소수 크기를 최대 1024비트로 제한합니다(JDK-6521495 참조).

해결 방법:

문제를 해결하려면 Java 개발자가 고려할 수 있습니다. 대체 툴킷을 사용하거나 해결 방법을 구현합니다. 권장 솔루션은 다음과 같습니다.

  1. 대체 툴킷 사용: BouncyCastle의 JCE 구현과 같이 1024비트보다 큰 소수 크기를 지원하는 다른 SSL 구현을 사용합니다.
  2. Java 소스 코드 편집(권장하지 않음): Java 소스 코드 수정 Java의 DHKeyPairGenerator 클래스(com.sun.crypto.provider에 있음)는 최대 소수 크기 제한을 늘립니다.

최신 Java 버전:

이후 Java 버전에서는 DH 키 교환에 대한 최대 소수 크기 제한이 늘어났습니다. 요약은 다음과 같습니다.

  • Java 8(JDK-7044060): 제한이 2048비트로 증가했습니다.
  • Java 9(JDK-8072452): 2048보다 큰 소수 크기에 대한 제한이 제거되었습니다. 비트.

이전 버전을 사용하는 경우 Java 버전에서는 늘어난 소수 크기 제한을 활용하려면 업그레이드하는 것이 좋습니다.

위 내용은 SSL 핸드셰이크 중에 'DH 키 쌍을 생성할 수 없습니다' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿