Question: is java cipher thread safe?
Answer: No, it isn't. The instance is stateful. So you need to store it threadlocal, or to obtain a new instance on every encrypt/decrypt call, or to wrap it in a synchronized(cipher) block. ... Even if a Cipher was thread-safe, it would not really be useful to use it from multiple threads concurrently.