Да, это так. Довольно легко понять, почему: нет методов (кроме одного, см. Ниже), которые изменяют состояние экземпляра SecretKeySpec
. Другими словами, класс обычно неизменяем, даже если это специально не упоминается в описании класса. Неизменяемые классы по определению потокобезопасны. На самом деле, большинство, если не все реализации Key
, обычно неизменяемы.
Есть один метод, который нарушает неизменяемость (о котором я забыл), и это более новый метод Key.destroy()
. Не волнуйтесь, это не вызывается Cipher
или какой-либо другой функцией, насколько мне известно. Кроме того, этот метод не реализован SecretKeySpec
(проверено в OpenJDK до версии 14).
Как также отмечалось в комментариях, вы никогда не должны помещать какую-либо динамическую c информацию в stati c полей. Вместо этого просто поделитесь ссылкой.