javax.crypto.SecretKey // 秘密(对称)密钥
javax.crypto.Cipher // 此类提供了针对加密和解密的密码 cipher 功能
为创建 Cipher 对象,应用程序调用 Cipher 的 getInstance 方法并将请求的转换 名称传递给它。作为可选项,也可以指定提供程序的名称。
转换 是描述为产生某种输出而在给定的输入上执行的操作(或一组操作)的字符串。转换始终包括加密算法的名称(例如,DES),后面可能跟有一个反馈模式和填充方案。
转换具有下面的形式:
?"算法/模式/填充"或
?"算法"
(后一种情况下,使用此模式和填充方案的特定于提供程序的默认值)。例如,以下是有效的转换:
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
在流 cipher 模式下(例如,DES 为 CFB 或 OFB 模式)请求块 cipher 时,用户可选择指定一次处理的位数,方法是将此数追加到模式名称中,如在 "DES/CFB8/NoPadding" 和 "DES/OFB32/PKCS5Padding" 转换中所示。如果未指定该数,则将使用特定于提供程序的默认值。(例如,"SunJCE" 提供程序使用默认的 64 位)。
方法摘要:
getInstance(String transformation)
生成一个实现指定转换的 Cipher 对象。
getInstance(String transformation, Provider provider)
创建一个实现指定转换的 Cipher 对象,该转换由指定的提供程序提供。
javax.crypto.spec.DESKeySpec // 此类指定一个 DES 密钥.
方法摘要:
DESKeySpec(byte[] key)
创建一个 DESKeySpec 对象,使用 key 中的前 8 个字节作为 DES 密钥的密钥内容。
DESKeySpec(byte[] key, int offset)
创建一个 DESKeySpec 对象,使用 key 中始于且包含 offset 的前 8 个字节作为 DES-EDE 密钥的密钥内容。
getKey()
返回 DES 密钥内容。
javax.crypto.SecretKeyFactory // 此类表示秘密密钥的工厂密钥工厂用来将密钥(类型 Key 的不透明加密密钥)转换为密钥规范(基础密钥材料的透明表示形式),反之亦然。秘密密钥工厂只对秘密(对称)密钥进行操作。 密钥工厂为双工模式,即其允许根据给定密钥规范(密钥材料)构建不透明密钥对象,或以适当格式检索密钥对象的基础密钥材料。 应用程序开发人员应参阅其提供程序的文档,找出 generateSecret 和 getKeySpec 方法支持的密钥规范。例如,"SunJCE" 提供程序提供的 DES 秘密密钥工厂支持 DESKeySpec 作为 DES 密钥的透明表示形式,并且该提供程序的 Triple DES 密钥的秘密密钥工厂支持 DESedeKeySpec 作为 Triple DES 密钥的透明表示形式。方法摘要:generateSecret(KeySpec keySpec) 根据提供的密钥规范(密钥材料)生成 SecretKey 对象。getInstance(String algorithm) 生成指定秘密密钥算法的 SecretKeyFactory 对象。