서비스와 상호 운용하려면 Java의 최소 512 비트보다 작은 키 크기로 RSA를 사용하여 일부 값을 암호화해야합니다. 그 정책을 완화시킬 수있는 방법이 있습니까?Java 공개 키 크기
BigInteger e = new BigInteger("13082845549543033994073971762152947067", 10);
BigInteger m = new BigInteger("229110545576645850236522690668306544921", 10);
RSAPublicKeySpec spec = new RSAPublicKeySpec(m, e);
KeyFactory keyFac = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFac.generatePublic(spec);
// ^^^^ java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: RSA keys must be at least 512 bits long
에 선
을
와 코드를 앞에 추가 및 변경 - RSA 512 비트가 이미 쉽게 깨질 것입니다 (참조 [this] (http://www.geek.com/news/512-bit-keys-cracked-in-6-weeks-549618/)), 그게 10 년 전 이었어. 이제는 아무데도 안 걸릴거야. 그 근처에서. 이러한 제한을 없애기 위해 많은 리플렉션을 사용하거나, 그런 일을 허용하는 다른 JVM을 찾거나 자신의 RSA 스위트를 구현할 수도 있지만, 그 중 어느 것도 근본적인 보안 문제를 해결할 수는 없습니다. – user2813274
이 시스템과 상호 운용해야합니다. 자체 서명 키와 일치하지 않는 호스트 이름을 사용하여 설계가 잘못되었습니다. 그러나 프로그래머는해야 할 일을해야합니다. –