Java 安全标准算法名称
Java SE Security API要求并使用一组算法、证书和密钥库类型的标准名称。您可以在本文档中找到标准算法名称的列表。
请注意,SE实现可能支持本规范中未定义的其他算法。作为最佳实践,如果算法在本规范的后续版本中定义,并且早期规范的实现支持该算法,则该实现应使用后续规范中定义的算法的标准名称。每个SE实现还应记录其支持的算法或在后续更新版本中添加的支持。这些算法可以记录在发行说明中,也可以记录在单独的文档中,例如JDK提供程序文档。
在某些情况下,命名约定用于形成未显式列出的名称,以促进提供程序实现之间的名称一致性。尖括号中的项(如 <digest>
和 <encryption>
)是占位符,将由特定的消息摘要、加密算法或其他名称替换。
注意:标准名称不区分大小写。
注意:JDK提供程序文档包含特定的提供程序和算法信息。
AlgorithmParameterGenerator
算法
AlgorithmParameterGenerator
算法本节中的算法名称可以在生成 AlgorithmParameterGenerator
实例时指定。
算法名称
描述
迪菲·赫尔曼
用于Diffie-Hellman算法的参数。
DSA
用于数字签名算法的参数。
AlgorithmParameters
算法
AlgorithmParameters
算法本节中的算法名称可以在生成 AlgorithmParameters
实例时指定。
算法名称
描述
AES
用于AES算法的参数。
Blowfish
用于Blowfish算法的参数。
ChaCha20-Poly1305
用于ChaCha 20-Poly 1305算法的参数,如RFC 8103中定义的。
DES
用于DES算法的参数。
DESede
用于DESede算法的参数。
迪菲·赫尔曼
用于DiffieHellman算法的参数。
DSA
用于数字签名算法的参数。
EC
用于EC算法的参数。
OAEP
用于OAEP算法的参数。
PBEWith<digest>和<encryption>PBEWith<prf>和<encryption>
用于PKCS #5基于密码的加密的参数,其中<digest>是消息摘要,<prf>是伪随机函数,<encryption>是加密算法。例如:PBEWithMD 5AndDES和PBEWithHmacSHA 256 AndAES。
PBE
用于PBE算法的参数。不应使用此名称,而应优先于前面列出的更具体的PBE算法名称。
RC2
用于RC 2算法的参数。
RSASSA-PSS
用于RSASSA-PSS签名算法的参数。
XDH
RFC 7748中定义的使用椭圆曲线的Diffie-Hellman密钥协商的参数。
X25519
RFC 7748中定义的与Curve 25519进行Diffie-Hellman密钥协商的参数。
X448
RFC 7748中定义的与Curve 448进行Diffie-Hellman密钥协商的参数。
CertificateFactory
类型
CertificateFactory
类型本节中的类型可以在生成 CertificateFactory
实例时指定。
类型
描述
X.509
在X.509中定义的证书类型,也在RFC 5280中指定。
CertPath
编码
CertPath
编码以下编码可以传递给 CertPath
的 getEncoded
方法或 CertificateFactory
的 generateCertPath(InputStream inStream, String encoding)
方法。
编码
描述
PKCS7
PKCS #7 SignedData对象,唯一重要的字段是证书。特别地,签名和内容被忽略。如果不存在证书,则假定长度为零的 CertPath
。
警告:PKCS #7不维护证书路径中证书的顺序。这意味着如果将 CertPath
转换为PKCS #7编码的字节,然后再转换回来,则证书的顺序可能会更改,从而可能导致 CertPath
无效。用户应该意识到这种行为。
有关PKCS #7的详细信息,请参见PKCS #7:加密消息加密。
PkiPath
ASN.1 DER编码的证书序列,定义如下:
PkiPath ::= SEQUENCE OF Certificate
在序列中,证书的顺序是第一个证书的主题是第二个证书的颁发者,依此类推。 PkiPath
中的每个证书都是唯一的。任何证书在 PkiPath
中的 Certificate
值中不得出现一次以上。 PkiPath
格式在针对X.509(2000)的缺陷报告279中定义,并被纳入ITU-T建议X.509(2000)的技术勘误表1(DTC 2)。详情见国际电联网站。
CertPathBuilder
算法
CertPathBuilder
算法本节中的算法可以在生成 CertPathBuilder
的实例时指定。
算法名称
描述
PKIX
在ValidationAlgorithm服务属性中定义的PKIX证书路径验证算法。实现该算法的 CertPathBuilder
实例的输出是根据PKIX验证算法验证的证书路径。
CertPathValidator
算法
CertPathValidator
算法本节中的算法可以在生成 CertPathValidator
的实例时指定。
算法名称
描述
PKIX
在ValidationAlgorithm服务属性中定义的PKIX证书路径验证算法。
CertStore
类型
CertStore
类型本节中的类型可以在生成 CertStore
的实例时指定。
类型
描述
收集
从 Collection
检索证书和CRL的 CertStore
实现。这种类型的 CertStore
在以包或某种附件的形式接收证书或CRL的应用程序中特别有用,例如使用签名的电子邮件或SSL协商。
LDAP
一个 CertStore
实现,它使用在LDAPSchema服务属性中定义的模式从LDAP目录中获取证书和CRL。
Cipher
算法名称
Cipher
算法名称当请求 Cipher
的实例时,可以将以下名称指定为转换中的算法组件。
注意:建议使用完全指定算法、模式和填充的转换。如果不这样做,提供程序将使用默认的模式和填充,这可能不符合应用程序的安全要求。
算法名称
描述
AES
NIST在FIPS 197中指定的高级加密标准。AES也被Joan Daemen和Vincent Rijmen称为Rijndael算法,是一种128位分组密码,支持128位、192位和256位的密钥。 要使用只有一个有效密钥大小的AES密码,请使用格式AES_<n>,其中<n>可以是128、192或256。
AESWrap
RFC 3394中描述的AES密钥包装算法 和NIST特别出版物SP 800- 38 F。 这与使用KW模式和NoPadding指定AES密码相同。若要使用只有一个有效密钥大小的AESWrap密码,请使用格式AESWrap_<n>,其中<n>可以是128、192或256。
AESWrapPad
RFC 5649中描述的AES密钥包装算法, NIST特别出版物SP 800- 38 F。 这与使用KWP模式和NoPadding指定AES密码相同。若要使用只有一个有效密钥大小的AESWrapPad密码,请使用格式AESWrapPad_<n>,其中<n>可以是128、192或256。
ARCFOUR
一种流密码,被认为可以与罗恩·里维斯特开发的RC 4密码完全互操作。有关详细信息,请参阅K. Kaukonen和R. Thayer,“A Stream Cipher Encryption Algorithm 'Arcfour'”,Internet Draft(expired).
Blowfish
由布鲁斯施奈尔设计的Blowfish分组密码。
ChaCha20
RFC 7539中定义的ChaCha 20流密码。
ChaCha20-Poly1305
AEAD模式下的ChaCha 20密码,使用Poly 1305加密,如RFC 7539中定义的。
DES
数字加密标准,如FIPS PUB 46-3中所述。
DESede
三重DES加密(也称为DES-EDE,3DES或Triple-DES)。数据使用DES算法加密三次。它首先使用第一子密钥加密,然后使用第二子密钥解密,并使用第三子密钥加密。
DESedeWrap
RFC 3217中描述的DESede密钥包装算法。
ECIES
椭圆曲线综合加密方案
PBEWith<digest>和<encryption>PBEWith<prf>和<encryption>
PKCS #5中定义的基于密码的加密算法,使用指定的消息摘要(<digest>)或伪随机函数(<prf>)和加密算法(<encryption>)。示例如下: PBEWithMD5AndDES:PBES1基于密码的加密算法,定义于PKCS #5:基于密码的加密规范,版本2.1。请注意,此算法意味着CBC作为密码模式,PKCS5Padding作为填充方案,并且不能与任何其他密码模式或填充方案一起使用。 PBEWithHmacSHA256AndAES_128:PBES2基于密码的加密算法,如PKCS #5:基于密码的加密规范,版本2.1中所定义。
RC2
可变密钥大小加密算法,由罗恩Rivest为RSA数据安全公司开发。
RC4
可变密钥大小加密算法,由罗恩Rivest为RSA数据安全公司开发。(See注意ARCFOUR之前。)
RC5
可变密钥大小加密算法,由罗恩Rivest为RSA数据安全公司开发。
RSA
PKCS #1 v2.2中定义的RSA加密算法。
Cipher
算法模式
Cipher
算法模式当请求 Cipher
的实例时,可以将以下名称指定为转换中的模式组件。
算法名称
描述
没有一
没有模式。
CBC
密码块链接模式,如FIPS PUB 81中定义。
CCM
计数器/CBC模式,如NIST特别出版物SP 800- 38 C中所定义。
CFB、CFBx
密码反馈模式,如FIPS PUB 81中所定义。 使用CFB和OFB等模式,块密码可以以小于密码实际块大小的单位加密数据。当请求这种模式时,您可以选择指定一次要处理的位数,方法是将此数字附加到模式名称中,如“DES/CFB 8/NoPadding”和“DES/OFB 32/PKCS 5 Padding”转换中所示。如果未指定此类编号,则使用提供程序特定的默认值。(For例如,SunJCE提供程序对DES使用默认的64位。)因此,通过使用诸如CFB 8或OFB 8的8位模式,可以将块密码转换为面向字节的流密码。
CTR
OFB的简化,计数器模式将输入块更新为计数器。
CTS
密码文本窃取,如布鲁斯施奈尔的书《应用密码学-第二版》中所述,约翰威利父子出版社,1996年。
ECB
电子码本模式,如FIPS PUB 81中定义的(通常此模式不应用于多个数据块)。
GCM
伽罗瓦/计数器模式,如NIST特别出版物SP 800- 38 D中所定义。
KW
密钥绕回(KW)模式,如RFC 3394和NIST特别出版物SP 800- 38 F中所定义。
KWP
带填充的密钥绕包(KWP)模式,如RFC 5649和NIST特别出版物SP 800- 38 F中所定义。
OFB、OFBx
输出反馈模式,如FIPS PUB 81中所定义。 使用CFB和OFB等模式,块密码可以以小于密码实际块大小的单位加密数据。当请求这种模式时,您可以选择指定一次要处理的位数,方法是将此数字附加到模式名称中,如“DES/CFB 8/NoPadding”和“DES/OFB 32/PKCS 5 Padding”转换中所示。如果未指定此类编号,则使用提供程序特定的默认值。(For例如,SunJCE提供程序对DES使用默认的64位。)因此,通过使用诸如CFB 8或OFB 8的8位模式,可以将块密码转换为面向字节的流密码。
PCBC
加密块链接,如BJV 4所定义。
Cipher
算法填充
Cipher
算法填充当请求 Cipher
的实例时,可以将以下名称指定为转换中的填充组件。
算法名称
描述
NoPadding
没有填充物。
ISO 10126衬垫
块密码的填充在W3C“XML加密算法和处理”文档中的5.2块加密算法中进行了描述。
OAEPAdding、OAEPWith<digest>和<mgf>Padding
最佳非对称加密。PKCS #1中定义的填充方案,其中<digest>应替换为消息摘要和<mgf>掩码生成函数。示例:具有MD5和MGF 1填充的OAEP和具有SHA-512和MGF 1填充的OAEP。
如果使用 OAEPPadding
,则使用 javax.crypto.spec.OAEPParameterSpec
对象初始化 Cipher
对象,以提供OAEPPadding所需的值。
PKCS 1衬垫
PKCS #1 v2.2中描述的填充方案,用于RSA算法。
PKCS 5衬垫
PKCS #5:Password-Based Cryptography Specification,version 2.1中描述的填充方案。
SSL 3填充
在SSL协议版本3.0,1996年11月18日,第5.2.3.2节(CBC块密码)中定义的填充方案:
block-ciphered struct {
opaque content[SSLCompressed.length];
opaque MAC[CipherSpec.hash_size];
uint8 padding[GenericBlockCipher.padding_length];
uint8 padding_length;
} GenericBlockCipher;
GenericBlockCipher
实例的大小必须是块密码的块长度的倍数。padding长度始终存在,对padding有贡献,这意味着如果:
sizeof(content) + sizeof(MAC) % block_length = 0,
填充必须是 (block_length - 1)
字节长,因为存在 padding_length
。
这使得填充方案类似于PKCS5Padding,其中填充长度被编码在填充中(并且范围从1到 block_length
)。使用SSL方案, sizeof(padding)
被编码在始终存在的 padding_length
中,因此范围从0到 block_length-1
。
Configuration
类型
Configuration
类型本节中的类型可以在生成 javax.security.auth.login.Configuration
实例时指定。
类型
描述
JavaLoginConfig
SUN提供程序的默认配置实现,如Configuration类规范中所述。此类型接受 java.security.URIParameter
作为有效的 Configuration.Parameter
类型。如果未指定此参数,则从 ConfigFile
类规范中描述的源加载配置信息。如果指定了此参数,则仅从指定的URI加载配置信息。
豁免机制
以下豁免机制名称可以在权限策略文件中指定,该文件随附被视为“豁免”加密限制的应用程序。
算法名称
描述
密钥托管
一种具有备份解密能力的加密系统,允许授权人员(用户、组织官员和政府官员)在某些规定的条件下,借助一个或多个持有特殊数据恢复密钥的可信方提供的信息对密文进行解密。
KeyRecovery
一种获取用于锁定加密数据的密钥的方法。一种用途是作为一种在灾难发生时提供对公司自己的加密信息的故障安全访问的手段。
密钥弱化
一种方法,其中一部分密钥可以被托管或恢复。
GSSAPI机制
使用GSSAPI时可以指定以下机制。请注意,指定对象标识符(OID)而不是名称是为了与GSSAPI标准保持一致。
机械手
描述
1.2.840.113554.1.2.2
RFC 4121中定义的GSS-API机制。
1.3.6.1.5.5.2
RFC 4178中定义的简单和受保护的GSS-API协商(SPNEGO)机制。
KeyAgreement
算法
KeyAgreement
算法当请求 KeyAgreement
的实例时,可以指定以下算法名称。
算法名称
描述
迪菲·赫尔曼
Diffie-Hellman密钥协议,定义于PKCS #3:Diffie-Hellman密钥协议标准,RSA实验室,版本1.4,1993年11月。
ECDH
椭圆曲线Diffie-Hellman,如ANSI X9.63中定义的和RFC 3278中描述的:“Use of Elliptic Curve Cryptography(ECC)Algorithms in Cryptographic Message Encryption(CMS).“
ECMQV
椭圆曲线Menezes-Qu-Vanstone。
XDH
RFC 7748中定义的具有椭圆曲线的Diffie-Hellman密钥协商。
X25519
Diffie-Hellman密钥协议与RFC 7748中定义的Curve 25519。
X448
与RFC 7748中定义的Curve 448进行Diffie-Hellman密钥协商。
KeyFactory
算法
KeyFactory
算法本节中的算法名称可以在生成 KeyFactory
实例时指定。
(除非另有说明,否则这些类创建的键的Key.getAlgorithm()返回标准算法名称。)
算法名称
描述
迪菲·赫尔曼
Diffie-Hellman密钥协议算法的密钥。
注意: key.getAlgorithm()
将返回“DH”而不是“DiffieHellman”。
DSA
数字签名算法的密钥。
EC
椭圆曲线算法的快捷键。
EdDSA
RFC 8032中定义的椭圆曲线爱德华曲线签名算法的密钥。
Ed25519
RFC 8032中定义的Edwards-Curve签名算法(Ed 25519)的密钥。
Ed448
RFC 8032中定义的Edwards-Curve签名算法和Ed 448。
RSA
RSA算法的密钥(签名/密码)。
RSASSA-PSS
RSASSA-PSS算法的密钥(签名)。
XDH
RFC 7748中定义的Diffie-Hellman椭圆曲线密钥协商。
X25519
用于Diffie-Hellman密钥协商的密钥,与RFC 7748中定义的Curve 25519一致。
X448
用于Diffie-Hellman密钥协商的密钥,与RFC 7748中定义的Curve 448一致。
KeyGenerator
算法
KeyGenerator
算法当请求 KeyGenerator
的实例时,可以指定以下算法名称。
(这些类生成键,Key.getAlgorithm()为这些键返回标准算法名称。)
算法名称
描述
AES
用于AES算法的密钥生成器。
ARCFOUR
用于ARCFOUR(RC 4)算法的密钥生成器。
Blowfish
密钥生成器与Blowfish算法使用.
ChaCha20
密钥生成器与ChaCha 20和ChaCha 20-Poly 1305算法一起使用。
DES
密钥生成器,用于DES算法。
DESede
用于DESete(triple-DES)算法的密钥生成器。
HmacMD5
用于HmacMD 5算法的密钥生成器。
HmacSHA1 HmacSHA224 HmacSHA256 HmacSHA384 HmacSHA512 HmacSHA3-224 HmacSHA3-256 HmacSHA3-384 HmacSHA3-512
用于HmacSHA算法的各种风格的密钥生成器。
RC2
用于RC 2算法的密钥生成器。
KeyManagerFactory
算法
KeyManagerFactory
算法生成 KeyManagerFactory
实例时可以指定的算法名称。
算法名称
描述
PKIX
一个用于 X509ExtendedKeyManager
的工厂,根据IETF PKIX工作组在RFC 5280或其后续版本中定义的规则,管理用于本地端身份验证的基于X.509证书的密钥对。 KeyManagerFactory
必须支持使用类 javax.net.ssl.KeyStoreBuilderParameters
进行初始化。
KeyPairGenerator
算法
KeyPairGenerator
算法生成 KeyPairGenerator
实例时可以指定的算法名称。
(除非另有说明,否则这些类创建的键的Key.getAlgorithm()返回标准算法名称。)
算法名称
描述
迪菲·赫尔曼
为Diffie-Hellman KeyAgreement算法生成密钥对。
注意: key.getAlgorithm()
将返回“DH”而不是“DiffieHellman”。
DSA
为数字签名算法生成密钥对。
RSA
为 RSA 算法(签名/密码)生成密钥对。
RSASSA-PSS系列
生成 RSASSA-PSS 签名算法的密钥对。
EC
为椭圆曲线算法生成密钥对。
教育DSA
使用 RFC 8032 中定义的椭圆曲线为 Edwards-Curve 签名算法生成密钥对。
编号:ED25519
使用 RFC 8032 中定义的 Ed25519 为 Edwards-Curve 签名算法生成密钥对。
教育448
使用 RFC 8032 中定义的 Ed448 为 Edwards-Curve 签名算法生成密钥对。
XDH
使用 RFC 7748 中定义的椭圆曲线生成 Diffie-Hellman 密钥一致性的密钥对。
X25519的
生成 RFC 7748 中定义的 Diffie-Hellman 密钥与 Curve25519 的密钥协议的密钥对。
X448系列
生成 RFC 7748 中定义的与 Curve448 的 Diffie-Hellman 密钥协议的密钥对。
#0# 类型
在生成 #0# 的实例时,可以指定本节中的类型。
类型
描述
JCEKS公司
SunJCE 提供程序提供的专有密钥库实现。
jks
SUN 提供程序提供的专有密钥库实现。
dks
域密钥库是以单个逻辑密钥库的形式呈现的密钥库的集合。它由配置数据指定,其语法在 DomainLoadStoreParameter 类中描述。
PKCS11 (英语:PKCS11)
由 PKCS #11 令牌支持的密钥库。
PKCS12型
PKCS #12 中定义的个人身份信息的传输语法。
#0# 算法
在请求 #0# 的实例时,可以指定以下算法名称。
算法名称
描述
HMACMD5型
RFC 2104 中定义的 HMAC-MD5 键控哈希算法:“HMAC:用于消息身份验证的键控哈希”(1997 年 2 月)。
HmacSHA1 HmacSHA224 HMACSHA256型 HmacSHA384型 HMACSHA512型 HmacSHA512/224 HmacSHA512/256 HMACSHA3-224型 HMACSHA3-256型 HMACSHA3-384型 型号:HMACSHA3-512
RFC 2104 “HMAC: Keyed-Hashing for Message Authentication”(1997 年 2 月)中定义的 HmacSHA* 算法,带有 SHA、SHA-2 和 SHA-3 系列摘要算法的 #0#。
PBE第十<mac>
PKCS #5:基于密码的加密规范 V2.1 中定义的基于密码的 PBMAC1 消息身份验证方案,其中是<mac>消息身份验证代码算法名称。示例:PBEWithHmacSHA256
HmacPBESHA1型 HmacPBESHA224型 HMACPBESHA256型 HMACPBESHA384型 HMACPBESHA512型 HMACPBESHA512/224型 HMACPBESHA512/256型
RFC 7292 附录 B.4 中定义的 HMAC 算法:“PKCS #12:个人信息交换语法 v1.1”(2014 年 7 月)。
#0# 算法
生成 #0# 实例时可以指定的算法名称。
算法名称
描述
MD2
RFC 1319 中定义的 MD2 消息摘要算法。
MD5
RFC 1321 中定义的 MD5 消息摘要算法。
SHA-1型 SHA-224型 SHA-256型 SHA-384型 SHA-512/224型 SHA-512/256型
FIPS PUB 180-4 中定义的哈希算法。安全哈希算法 - SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256 - 用于计算电子数据(消息)的浓缩表示。当消息输入到哈希算法时,结果是称为消息摘要的输出。消息摘要的长度范围为 160-512 位,具体取决于算法。
SHA3-224标准 SHA3-256标准 SHA3-384标准 SHA3-512标准
FIPS PUB 202 中定义的基于排列的哈希和可扩展输出函数。输入消息长度可以变化;输出摘要的长度是固定的。 SHA3-224 生成 224 位摘要。 SHA3-256 生成 256 位摘要。 SHA3-384 生成 384 位摘要。 SHA3-512 生成 512 位摘要。
#0# 名称
#1# 包中的 #0# 类可用于使用以下名称指定一组参数。
名字
描述
X25519的
使用 RFC 7748 中定义的 X25519 标量乘法函数进行椭圆曲线加密。
X448系列
使用 RFC 7748 中定义的 X448 标量乘法函数的椭圆曲线加密。
#1# 包中的 #0# 类可用于使用以下名称指定一组椭圆曲线参数。
名字
描述
sect163k1型 第163R1节 第163R2节 第193R1节 第193R2节 sect233k1 第233R1节 sect239k1型 sect283k1 第283R1节 sect409k1型 第409R1节 sect571k1型 第571R1节 SECP160K1型 SECP160R1型 SECP160R2系列 SECP192K1型 SECP192R1型 SECP224K1型 SECP224R1系列 SECP256K1系列 SECP256R1型 SECP384R1系列 SECP521R1系列
SECG 中指定的命名曲线,SEC 2:推荐的椭圆曲线域参数。
脑池P256r1 脑池P384r1 脑池P512r1
RFC 5639 中定义的命名曲线。
#0# 类型
在生成 #0# 的实例时,可以指定本节中的类型。
类型
描述
JavaPolicy
来自 SUN 提供程序的缺省策略实现,如《Java 平台,标准版安全开发人员指南》的“缺省策略实现和策略文件语法”部分所述。此类型接受 #0# 作为有效的 #1# 类型。如果未指定此参数,那么将从《Java 平台,标准版安全开发人员指南》的“缺省策略文件位置”一节中描述的源装入策略信息。如果指定了此参数,则仅从指定的 URI 加载策略信息。
#0# 机制
在生成 #0# 的实例时,可以指定本节中的机制。
机制
描述
CRAM-MD5型
请参阅 RFC 2195。此机制支持哈希用户名/密码身份验证方案。
摘要-MD5
请参阅 RFC 2831。此机制定义了如何将 HTTP 摘要式身份验证用作 SASL 机制。
外部
请参阅 RFC 2222。此机制从外部通道(如 TLS 或 IPsec)获取身份验证信息。
GSSAPI公司
请参阅 RFC 2222。此机制使用 GSSAPI 获取身份验证信息。它支持 Kerberos v5 身份验证。
NTLM公司
请参阅 MS-NLMP。此机制支持 NTLM 身份验证方案。
平原
请参阅 RFC 2595。此机制支持明文用户名/密码身份验证。
#0# 机制
在生成 #0# 的实例时,可以指定本节中的机制。
机制
描述
CRAM-MD5型
请参阅 RFC 2195。此机制支持哈希用户名/密码身份验证方案。
摘要-MD5
请参阅 RFC 2831。此机制定义了如何将 HTTP 摘要式身份验证用作 SASL 机制。
GSSAPI公司
请参阅 RFC 2222。此机制使用 GSSAPI 获取身份验证信息。它支持 Kerberos v5 身份验证。
NTLM公司
请参阅 MS-NLMP。此机制支持 NTLM 身份验证方案。
#0# 算法
在请求 #0# 的实例时,可以指定以下算法名称。
(这些类创建密钥,Key.getAlgorithm() 返回标准算法名称。
AES
构造用于 AES 算法的密钥。
ARCFOUR
构造用于 ARCFOUR 算法的密钥。
ChaCha20
构造用于 ChaCha20 和 ChaCha20-Poly1305 算法的密钥。
DES
构造用于 DES 算法的密钥。
DESede
构造用于 DESede (Triple-DES) 算法的密钥。
PBEWith<digest>和<encryption> PBEWith<prf>和<encryption>
用于 PKCS #5 基于密码的加密的密钥工厂,其中<digest>是消息摘要, <prf> 是伪随机函数,<encryption>是一种加密算法。例子: PBEWithMD5AndDES(PKCS #5,PBES1 加密方案), PBEWithHmacSHA256AndAES_128(PKCS #5,PBES2 加密方案) 注意:这些都仅使用每个密码字符的低阶8位。
PBKDF2使用<prf>
PKCS #5:基于密码的加密规范 2.1 版中定义的基于密码的密钥派生算法,使用指定的伪随机函数 (<prf>)。例: PBKDF2WithHmacSHA256 中。
#0# 数字生成算法
本节中的算法名称可以在生成 #0# 的实例时指定。
原生PRNG
从底层本机操作系统获取随机数。 对于生成这些数字的阻塞性质,没有做出任何断言。
本机PRNG锁定
从底层本机操作系统获取随机数,必要时进行阻塞。例如,类 UNIX 系统上的 #0#。
NativePRNGNonBlocking
从底层原生操作系统获取随机数,不阻塞,防止应用过度停滞。例如,类 UNIX 系统上的 #0#。
PKCS11型
从已安装和配置的基础 PKCS #11 库中获取随机数。
DRBG公司
使用 NIST SP 800-90Ar1 中定义的 DRBG 机制的算法。
SHA1PRNG
SUN 提供程序提供的伪随机数生成 (PRNG) 算法的名称。该算法使用 SHA-1 作为 PRNG 的基础。它计算与 64 位计数器连接的真随机种子值上的 SHA-1 哈希值,该计数器每执行一次操作递增 1。在 160 位 SHA-1 输出中,仅使用 64 位。
Windows-PRNG的
从底层 Windows 操作系统获取随机数。
服务属性
本节中的属性适用于加密服务。服务属性可用作选择提供程序的筛选器。
加密服务始终与特定算法或类型相关联。例如,数字签名服务始终与特定算法(例如 DSA)相关联,而 #0# 服务始终与特定证书类型(例如 X.509)相关联。
注: 属性名称和值不区分大小写。
键大小
提供程序支持加密服务的最大密钥大小。
已实施
加密服务的实现是通过软件还是硬件完成的。此属性的值为“软件”或“硬件”。
验证算法
定义 #0# 或 #1# 实现支持的证书路径验证算法的规范的名称。RFC 应指定为“RFC#”(例如:“RFC5280”),Internet 草稿应指定为草稿的名称(例如:“#2#”)。指定为 #3# 方法选择条件的此属性的值将使用 #4# 方法进行比较。#5# 和 #6# 的所有 PKIX 实现都应为此属性提供值。
LDAPSchema
定义 LDAP #0# 的实现用于检索证书和 CRL 的 LDAP 架构的规范的名称。此属性的格式和语义与 ValidationAlgorithm 属性的格式和语义相同。#1# 的所有 LDAP 实现都应为此属性提供值。
线程安全
#0# 实现是否实现了其 #1# 引擎方法线程安全。
例如
#0# 算法
本节中的算法名称可以在生成 #0# 的实例时指定。
算法名称
描述
教育DSA
RFC 8032 中定义的 Edwards-Curve 签名算法。
编号:ED25519
RFC 8032 中定义的 Ed25519 的 Edwards-Curve 签名算法。
教育448
RFC 8032 中定义的 Ed448 的 Edwards-Curve 签名算法。
无与RSA
RSA 签名算法不使用任何摘要算法,仅使用 PKCS #1 v2.2 中定义的 RSASP1/RSAVP1 基元。
MD2与RSA MD5与RSA
使用 MD2/MD5 摘要和 PKCS #1 v2.2 中定义的 RSASSA-PKCS1-v1_5 签名方案的 RSA 签名算法。
SHA1与RSA SHA224与RSA SHA256与RSA SHA384与RSA SHA512与RSA SHA512/224与RSA SHA512/256与RSA SHA3-224与RSA SHA3-256与RSA SHA3-384与RSA SHA3-512与RSA
将 SHA-* 摘要与 PKCS #1 v2.2 中定义的 RSASSA-PKCS1-v1_5 签名方案结合使用的 RSA 签名算法。
RSASSA-PSS系列
使用 [PKCS #1 v2.2] (https://tools.ietf.org/html/rfc8017) 中定义的 RSASSA-PSS 签名方案的签名算法。请注意,在执行 RSA 操作之前,此签名算法需要提供消化算法、盐长度和 MGF1 算法等参数。
无DSA
FIPS PUB 186-2 中定义的数字签名算法。数据长度必须正好为 20 个字节。此算法也称为 rawDSA。
SHA1与DSA SHA224与DSA SHA256与DSA SHA384与DSA SHA512与DSA SHA3-224带DSA SHA3-256与DSA SHA3-384带DSA SHA3-512带DSA
使用 SHA-1、SHA-2 和 SHA-3 系列摘要算法创建和验证 FIPS PUB 186-3 和 FIPS PUB 186-4 中定义的数字签名的 DSA 签名算法。
无ECDSA SHA1与ECDSA SHA224与ECDSA SHA256与ECDSA SHA384与ECDSA SHA512与ECDSA (ECDSA) SHA3-224带ECDSA SHA3-256带ECDSA SHA3-384带ECDSA SHA3-512带ECDSA
ANSI X9.62 中定义的 ECDSA 签名算法。 注意:“ECDSA”是“SHA1withECDSA”算法的模糊名称,不应使用。应改用正式名称“SHA1withECDSA”。
NONEwithDSAinP1363格式 SHA1withDSAinP1363格式 SHA224withDSAinP1363格式 SHA256与DSAinP1363格式 SHA384withDSAinP1363格式 SHA512withDSAinP1363格式 SHA3-224与DSAinP1363格式 SHA3-256与DSAinP1363格式 SHA3-384与DSAinP1363格式 SHA3-512与DSAinP1363格式
FIPS PUB 186-2、186-3 和 186-4 中定义的 DSA 签名算法,输出以 IEEE P1363 格式定义。这些算法的签名字节的格式是原始字节中整数 r 和 s 的串联。
NONEwithECDSAinP1363格式 SHA1与ECDSAinP1363格式 SHA224与ECDSAinP1363格式 SHA256与ECDSAinP1363格式 SHA384与ECDSAinP1363格式 SHA512与ECDSAinP1363格式 SHA3-224与ECDSAinP1363格式 SHA3-256与ECDSAinP1363格式 SHA3-384与ECDSAinP1363格式 SHA3-512与ECDSAinP1363格式
ANSI X9.62 和 FIPS PUB 186-4 中定义的 ECDSA 签名算法,输出以 IEEE P1363 格式定义。这些算法的签名字节的格式是原始字节中整数 r 和 s 的串联。
<digest>跟<encryption>
使用它来形成具有特定消息摘要(如 MD2 或 MD5)和算法(如 RSA 或 DSA)的签名算法的名称,就像本节中显式定义的标准名称(MD2withRSA 等)一样。 对于 PKCS #1 v2.2 中定义的签名方案,其中 <digest>with<encryption> 形式不足,<digest>with<encryption>和<mgf> 可用于形成名称。在这里, <mgf> 应该用 MGF1 等掩码生成函数代替。示例:MD5withRSAandMGF1 对于 IEEE P1363 中定义的签名格式,<digest>可以使用<encryption><format>in 格式来形成名称。示例:SHA1withECDSAinP1363Format
#0# 算法
本节中的算法名称可以在生成 #0# 的实例时指定。
算法名称
描述
SSL
支持某些版本的 SSL;可能支持其他 SSL/TLS 版本。
SSLv2
支持 SSL 版本 2 或更高版本;可能支持其他 SSL/TLS 版本。
SSLv3
支持SSL版本3;可能支持其他 SSL/TLS 版本。
TLS
支持某些版本的 TLS;可能支持其他 SSL/TLS 版本。
TLSv1
支持 RFC 2246:TLS 版本 1.0;可能支持其他 SSL/TLS 版本。
TLSv1.1版本
支持 RFC 4346:TLS 版本 1.1;可能支持其他 SSL/TLS 版本。
TLSv1.2
支持 RFC 5246:TLS 版本 1.2;可能支持其他 SSL/TLS 版本。
TLSv1.3
支持 RFC 8446:TLS 版本 1.3;可能支持其他 SSL/TLS 版本。
DTLS系列
支持 DTLS 版本的默认提供程序相关版本。
DTLSv1.0版本
支持 RFC 4347:DTLS 版本 1.0;可能支持其他 DTLS 版本。
DTLS版本1.2
支持 RFC 6347:DTLS 版本 1.2;可能支持其他 DTLS 版本。
#0# 算法
本节中的算法名称可以在生成 #0# 的实例时指定。
算法名称
描述
PKIX的
#0# 对象的工厂,根据 RFC 5280 或其后续版本中 IETF PKIX 工作组定义的规则验证证书链。#1# 必须支持使用类 #2# 进行初始化。
XML 签名 ( #0# / #1# / #2# ) 机制
生成 #0# , #1# 或 #2# 实例时可以指定的机制。
该机制标识实现在内部用于分析和生成 XML 签名和 KeyInfo 结构的 XML 处理机制。另请注意,除了机制之外,每个 #0# 实例还支持特定的转换算法。转换算法的标准名称将在下一节中定义。
机制
描述
DOM
文档对象模型。
XML 签名转换 ( #0# ) 算法
本节中的算法可以在生成 #0# 的实例时指定。
注意:指定 URI 而不是名称,以符合 XML 签名标准。已为每个 URI 定义了 API 常量,并在下表中每个 URI 后的括号中列出。
算法 URI
描述
http://www.w3.org/TR/2001/REC-xml-c14n-20010315 ( #0# )
规范 XML(无注释)规范化算法。
http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments ( #0# )
带有注释的规范化 XML 规范化算法。
http://www.w3.org/2001/10/xml-exc-c14n# ( #0# )
独占规范 XML(无注释)规范化算法。
http://www.w3.org/2001/10/xml-exc-c14n#WithComments ( #0# )
带有注释的独占规范化 XML 规范化算法。
http://www.w3.org/2006/12/xml-c14n11 ( #0# )
规范 XML 1.1(无注释)规范化算法。
http://www.w3.org/2006/12/xml-c14n11#WithComments ( #0# )
带有注释的规范化算法的规范化 XML 1.1。
http://www.w3.org/2000/09/xmldsig#base64 ( #0# )
Base64 变换算法。
http://www.w3.org/2000/09/xmldsig#enveloped-signature ( #0# )
Enveloped Signature 变换算法。
http://www.w3.org/TR/1999/REC-xpath-19991116 ( #0# )
XPath 转换算法。
http://www.w3.org/2002/06/xmldsig-filter2 ( #0# )
XPath 筛选器 2 转换算法。
http://www.w3.org/TR/1999/REC-xslt-19991116 ( #0# )
XSLT 转换算法。
JSSE 密码套件名称
下表包含标准的 JSSE 密码套件名称。随着时间的推移,各种组已向 SSL/TLS/DTLS 命名空间添加了其他密码套件。
一些 JSSE 密码套件名称是在 TLSv1.0 最终确定之前定义的,因此被赋予了 #0# 前缀。以 #1# 为前缀的 TLS RFC 中提到的名称在功能上等同于以 #2# 为前缀的 JSSE 密码套件。
密码套件代码
标准名称(如果不同,则为 IANA 名称)
对数据报传输层协议有效
已弃用(协议)
在(协议)中引入
引用
0x00,0x03
SSL_RSA_EXPORT_WITH_RC4_40_MD5 IANA:TLS_RSA_EXPORT_WITH_RC4_MD5
No
TLSv1.1版本
N/A
0x00,0x06
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 IANA:TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
Yes
TLSv1.1版本
N/A
0x00,0x08
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA IANA:TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
Yes
TLSv1.1版本
N/A
0x00,0x0B
SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA IANA:TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
Yes
TLSv1.1版本
N/A
0x00,0x0D
SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA IANA:TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
Yes
TLSv1.3
N/A
0x00,0x0E
SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA IANA:TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
Yes
TLSv1.1版本
N/A
0x00,0x10
SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA IANA:TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
Yes
TLSv1.3
N/A
0x00,0x11
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA IANA:TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
Yes
TLSv1.1版本
N/A
0x00,0x13
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA IANA:TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
Yes
TLSv1.3
N/A
0x00,0x14
SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA IANA:TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
Yes
TLSv1.1版本
N/A
0x00,0x16
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA IANA:TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
Yes
TLSv1.3
N/A
0x00,0x17
SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 IANA:TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
No
TLSv1.1版本
N/A
0x00,0x18
SSL_DH_anon_WITH_RC4_128_MD5 IANA:TLS_DH_anon_WITH_RC4_128_MD5
No
TLSv1.1版本
N/A
0x00,0x19
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA WISE:TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
Yes
TLSv1.1版本
N/A
0x00,0x1B
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA IANA:TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
Yes
TLSv1.1版本
N/A
0xC0,0x45