Published 2024. 9. 5. 20:40
728x90
반응형
java.security.NoSuchProviderException: No such provider: BC 에러 원인과 해결 방법
원인
Cipher cipher = Cipher.getInstance("SEED/CBC/PKCS5Padding", "BC");
위의 코드를 실행했더니 아래의 에러가 났음
먼저 코드를 살펴보자
SEED 알고리즘은 java.security의 Provider에서 제공하지 않는 알고리즘이기에 org.bouncycastle 를 gradle에 추가해서 가져오려고 했음
// gradle
implementation group: 'org.bouncycastle', name: 'bcprov-jdk18on', version: '1.77'
implementation group: 'org.bouncycastle', name: 'bcpkix-jdk18on', version: '1.77'
BC는 bouncycastle의 약자로 저렇게 가져다 쓰려고 "BC"라고 함
여기서 내가 Bouncy Castle Provider 등록하는 과정을 빼먹었기에 Providers.getProviderList().getProvider("BC") 이렇게 찾으려고 하면 찾을 수 없다고 에러가 나는 것임
해결 방법
Bouncy Castle Provider를 수동으로 Security Provider에 등록해주기!
예시 코드
static {
Security.addProvider(new BouncyCastleProvider());
}
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] 홈택스 공동 인증서 로그인_2 (0) | 2024.09.11 |
---|---|
[Java] 홈택스 공동 인증서 로그인_1 (0) | 2024.09.09 |
[Spring Error] java.lang.IllegalArgumentException: Invalid character found in the request target... 에러 해결 방법 (0) | 2023.12.01 |
[Java] ArrayList 맨 앞에 값 추가하기 (0) | 2023.10.12 |
[Java] Deprecated StringUtils.isEmpty 대체 (0) | 2023.09.27 |