문제

쾌활한 성곽 API 스레드에 안전합니까?특히,

org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher
org.bouncycastle.crypto.paddings.PKCS7Padding
org.bouncycastle.crypto.engines.AESFastEngine
org.bouncycastle.crypto.modes.CBCBlockCipher

내 계획 작성하는 단일 봄 콩 기본적인 수준에 대한 암호화를 지원합니다.기 때문 웹 응용 프로그램이있다,더 큰 기회를 여러 스레드에 액세스하이 구성 요소를 시간이다.그래서 떠 안전은 필수적입니다.

알려주시기 바랍 경우에는 이러한 상황을 사용하여 쾌활한 성도 있습니다.

도움이 되었습니까?

해결책

그것이 정말로 중요하지 않는 경우 API/코드에 스레드에 안전합니다.CBC 암호화하지 않는 스레드에 안전합니다.몇 가지 용어

E(X) = Enctrypt message X
D(X) = Dectrypt X. (Note that D(E(X)) = X)
IV = Initialization vector. A random sequence to bootstrap the CBC algorithm
CBC = Cipher block chaining.

정말 간단한 CBC 구현할 수 있는 다음과 같다:P1,P2,P3=일반 텍스트 메시지

1. Generate an IV, just random bits.
2. Calculate E( P1 xor IV) call this C1
3. Calculate E( P2 xor C1) call this C2
4. Calculate E( P3 xor C2) call this C3.

당신이 볼 수 있듯이,그 결과의 암호화하 P1,P2,P3(순서대로)다른 암호화 P2,P1,P3(에서는 주문).

그래서,CBC 구현,순서는 중요합니다.모든 알고리즘에는 순서가 중요할 수 있는지에 의해 정의 될 스레드에 안전합니다.

할 수 있는 단일 공장에 제공하는 암호화체,하지만 당신은 그들을 신뢰하는 스레드에 안전합니다.

다른 팁

The J2ME 버전지 않는 스레드에 안전합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top