Share via


KeyGenerator 类

定义

此类提供机密 (对称) 密钥生成器的功能。

[Android.Runtime.Register("javax/crypto/KeyGenerator", DoNotGenerateAcw=true)]
public class KeyGenerator : Java.Lang.Object
[<Android.Runtime.Register("javax/crypto/KeyGenerator", DoNotGenerateAcw=true)>]
type KeyGenerator = class
    inherit Object
继承
KeyGenerator
属性

注解

此类提供机密 (对称) 密钥生成器的功能。

密钥生成器是使用此类的类方法之 getInstance 一构造的。

KeyGenerator 对象是可重用的,即生成密钥后,可以重复使用同一个 KeyGenerator 对象来生成更多密钥。

有两种方法可以生成密钥:以独立于算法的方式生成密钥,以及以特定于算法的方式生成密钥。 两者之间的唯一区别是 对象的初始化:

<ul><li><b>算法独立初始化</b>

所有密钥生成器都共享 密钥大小 的概念和 随机性来源。 此 KeyGenerator 类中有一个 #init(int, java.security.SecureRandom) init 方法采用这两种通用共享类型的参数。 还有一个方法仅采用参数 keysize ,并使用安装的最高优先级提供程序的 SecureRandom 实现作为随机性源 (或系统提供的随机性源(如果没有已安装的提供程序提供 SecureRandom 实现) ),而仅使用随机性源。

由于在调用上述与算法无关 init 的方法时未指定其他参数,因此,如果任何) 与每个键相关联,则由提供程序对特定于算法的参数执行哪些操作 (。

<li><b>算法特定的初始化</b>

对于已存在一组特定于算法的参数的情况,有两 #init(java.security.spec.AlgorithmParameterSpec) init 个方法具有参数 AlgorithmParameterSpec 。 其中一个还具有 参数,而另一个 SecureRandom 使用安装的最高优先级提供程序的 SecureRandom 实现作为随机性源 (,或者使用系统提供的随机源(如果已安装的提供程序都未提供 SecureRandom 实现) )。 </ul>

如果客户端未通过调用 init 方法) 显式初始化 KeyGenerator (,则每个提供程序都必须提供 (和文档) 默认初始化。

Android 提供以下KeyGenerator算法:<table<>thead><tr<>th>Algorithm</th>><supported API Levels</th<>/tr></thead><tbody<>tr<>td>AES</td<>td td>1+</td></tr<>class=“deprecated”><td>AESWRAP</td><td>1-8</td<>/tr<>tr><td>ARC4</td><td>14+</td></tr<><>td>BLOWFISH</td<>td td>10+</td<>/tr><><td>ChaCha20</td><td>28+</td<>/tr><<>td>DES</td<>td>1+</td<>/tr<>tr><td>DESede</td><td>1+</td/><tr>tr class=“deprecated”><td>DESedeWRAP</td><td>1-8</td></tr<>><td>HmacMD5</td<>td>1+</td<>/tr>><<td>HmacSHA1</td><td>11+</td<>/tr><tr<>td>HmacSHA224</td><td td>1-8,22+</td<></tr><td<>>HmacSHA256</td<>td>1+</td<>/tr<<>>td>HmacSHA384</td td><td>1+</td<>/tr<<>>td>HmacSHA512</td><td td>1+</td<>/tr<>class=“deprecated”<>td>RC4</td><td td>10-13</Td></tr></tbody></table>

Java Cryptography Architecture Standard Algorithm Name 文档的 KeyGenerator 部分 介绍了这些算法。

在 1.4 中添加。

javax.crypto.KeyGeneratorJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

构造函数

KeyGenerator(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

KeyGenerator(KeyGeneratorSpi, Provider, String)

创建 KeyGenerator 对象。

属性

Algorithm

返回此 KeyGenerator 对象的算法名称。

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
JniPeerMembers

此类提供机密 (对称) 密钥生成器的功能。

PeerReference

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
Provider

返回此 KeyGenerator 对象的提供程序。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

方法

Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
Dispose(Boolean)

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
Equals(Object)

指示某个其他对象是否“等于”此对象。

(继承自 Object)
GenerateKey()

生成密钥。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetInstance(String)

返回一个 KeyGenerator 对象,该对象为指定的算法生成密钥。

GetInstance(String, Provider)

返回一个 KeyGenerator 对象,该对象为指定的算法生成密钥。

GetInstance(String, String)

返回一个 KeyGenerator 对象,该对象为指定的算法生成密钥。

Init(IAlgorithmParameterSpec)

使用指定的参数集初始化此密钥生成器。

Init(IAlgorithmParameterSpec, SecureRandom)

使用指定的参数集和用户提供的随机性源初始化此密钥生成器。

Init(Int32)

针对特定键大小初始化此密钥生成器。

Init(Int32, SecureRandom)

使用用户提供的随机性源为特定键大小初始化此密钥生成器。

Init(SecureRandom)

初始化此密钥生成器。

JavaFinalize()

当垃圾回收确定不再引用对象时,由垃圾回收器对对象调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
IJavaPeerable.Finalized()

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

此类提供机密 (对称) 密钥生成器的功能。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

此类提供机密 (对称) 密钥生成器的功能。

GetJniTypeName(IJavaPeerable)

此类提供机密 (对称) 密钥生成器的功能。

适用于