簡體   English   中英

Bouncy Castle API線程安全嗎?

[英]Is Bouncy Castle API Thread Safe?

Bouncy Castle API線程安全嗎? 特別,

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

我打算在我的應用程序中編寫一個單獨的Spring bean用於基本級加密支持。 由於它是一個Web應用程序,因此多個線程一次訪問此組件的可能性更大。 因此,踏板安全至關重要。

如果您使用Bouncy Castle遇到過這種情況,請告訴我。

API / Code是否是線程安全的並不重要。 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實施中,訂單很重要。 根據定義,任何順序重要的算法都不能是線程安全的。

您可以創建一個提供加密對象的Singleton工廠,但您不能相信它們是線程安全的。

J2ME版本不是線程安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM