我对Java(6+)如何分发其安全框架感到有些困惑。一方面,您具有以下软件包(以及它们各自的子软件包和类型):
java.security.*
javax.security.*
另一方面,您将java.lang.SecurityManager
以及其他与安全相关的类型散布在其他非安全包中(例如java.lang
)。
所以,有几个问题:
java.security
和javax.security
有什么区别?何时使用每种类型?java.lang
之外,还有其他任何以安全性为中心的类型出现的软件包,如果是,它们是什么?分裂主要是历史原因。曾几何时,美国对加密软件实行出口限制。
根据经验:与签名相关的东西可以在java.security中找到,其余的(密码,...)可以在javax.security中找到。
当今的JRE捆绑了标准安全提供程序,因此JCE是平台的一部分。