在Java加密库中,有两种不同的密钥表示方式 -
然而,
所有这些已经让我彻底困惑了。一个“Key”和一个“KeySpec”有什么不同,以及“SecretKeySpec”和“SecretKeyFactory”是如何涉及其中的?
Key
和 KeySpec
。文档暗示它们之间存在差异 - KeySpec
是“透明”的(这意味着什么),但没有方法,而Key
具有getEncoded
方法。您应该使用KeyFactory
在两者之间进行转换(确实有一个getKeySpec
方法可供转换)。然而,
SecretKeySpec
同时实现了Key
和KeySpec
!但是,还有一个名为SecretKeyFactory
的类,它不继承自KeyFactory
。所有这些已经让我彻底困惑了。一个“Key”和一个“KeySpec”有什么不同,以及“SecretKeySpec”和“SecretKeyFactory”是如何涉及其中的?