uTools-Manuals/docs/java/javax/crypto/KeyGenerator.html

534 lines
28 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.crypto
</div>
<h2 class="title" title="Class KeyGenerator">Class KeyGenerator</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.crypto.KeyGenerator</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public class <span class="typeNameLabel">KeyGenerator</span>
extends <a href="../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>该类提供了一个秘密(对称)密钥生成器的功能。</span>
<p> <span>密钥生成器使用此类的<code>getInstance</code>类方法之一构建。</span> </p>
<p> <span>KeyGenerator对象是可重用的即在生成一个密钥之后可以重新使用相同的KeyGenerator对象来生成其他密钥。</span> </p>
<p> <span>有两种方式来生成一个密钥:以一种算法无关的方式,并以一种算法特定的方式。</span> <span>两者之间的唯一区别是对象的初始化:</span> </p>
<ul>
<li> <span><b>独立于算法的初始化</b></span> <p> <span>所有密钥生成器共享一个<i>密钥长度</i>的概念和<i>随机源</i></span> <span>这个KeyGenerator类中有一个<a href="../../javax/crypto/KeyGenerator.html#init-int-java.security.SecureRandom-"><code>init</code></a>方法,它接受这两个普遍共享的参数类型。</span> <span>还有一个只需要一个<code>keysize</code>参数并且使用最高优先级安装的提供程序的SecureRandom实现作为随机源或者如果没有一个已安装的提供程序提供SecureRandom实现则是系统提供的随机源以及一个只是一个随机的来源。</span> </p><p> <span>由于在调用上述独立于算法的<code>init</code>方法时没有指定其他参数,因此提供者如何处理与每个密钥相关联的特定于算法的参数(如果有的话)。</span> </p></li>
<li> <span><b>特定于算法的初始化</b></span> <p> <span>对于一组特定于算法的参数已存在的情况,有两个<a href="../../javax/crypto/KeyGenerator.html#init-java.security.spec.AlgorithmParameterSpec-"><code>init</code></a>方法具有<code>AlgorithmParameterSpec</code>参数。</span> <span>一个也有一个<code>SecureRandom</code>参数而另一个使用最高优先级安装的提供程序的SecureRandom实现作为随机源或者系统提供的随机源如果没有一个已安装的提供程序提供SecureRandom实现</span> </p></li>
</ul>
<p> <span>如果客户端没有显式初始化KeyGenerator通过调用<code>init</code>方法),则每个提供程序都必须提供(并记录)默认的初始化。</span> </p>
<p> <span>Java平台的每个实现都需要支持以下标准<code>KeyGenerator</code>算法,其中括号中的键入:</span> </p>
<ul>
<li> <span><tt>AES</tt> 128</span> </li>
<li> <span><tt>DES</tt> 56</span> </li>
<li> <span><tt>DESede</tt> 168</span> </li>
<li> <span><tt>HmacSHA1</tt></span> </li>
<li> <span><tt>HmacSHA256</tt></span> </li>
</ul>
<span>这些算法的描述<a href="../../../technotes/guides/security/StandardNames.html#KeyGenerator">KeyGenerator section</a> Java加密体系结构标准算法名称的文档。</span>
<span>请参阅发行说明文件以了解是否支持其他算法。</span>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.4
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../javax/crypto/SecretKey.html" title="javax.crypto中的接口"><code>SecretKey</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#KeyGenerator-javax.crypto.KeyGeneratorSpi-java.security.Provider-java.lang.String-">KeyGenerator</a></span>(<a href="../../javax/crypto/KeyGeneratorSpi.html" title="class in javax.crypto">KeyGeneratorSpi</a> keyGenSpi, <a href="../../java/security/Provider.html" title="class in java.security">Provider</a> provider, <a href="../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</code>
<div class="block">
创建一个KeyGenerator对象。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t1"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="../../javax/crypto/SecretKey.html" title="interface in javax.crypto">SecretKey</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#generateKey--">generateKey</a></span>()</code>
<div class="block">
生成一个秘密密钥。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#getAlgorithm--">getAlgorithm</a></span>()</code>
<div class="block">
返回此
<code>KeyGenerator</code>对象的算法名称。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>static <a href="../../javax/crypto/KeyGenerator.html" title="class in javax.crypto">KeyGenerator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#getInstance-java.lang.String-">getInstance</a></span>(<a href="../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</code>
<div class="block">
返回一个
<code>KeyGenerator</code>对象,该对象为指定的算法生成密钥。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>static <a href="../../javax/crypto/KeyGenerator.html" title="class in javax.crypto">KeyGenerator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#getInstance-java.lang.String-java.security.Provider-">getInstance</a></span>(<a href="../../java/lang/String.html" title="class in java.lang">String</a> algorithm, <a href="../../java/security/Provider.html" title="class in java.security">Provider</a> provider)</code>
<div class="block">
返回一个
<code>KeyGenerator</code>对象,该对象为指定的算法生成密钥。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>static <a href="../../javax/crypto/KeyGenerator.html" title="class in javax.crypto">KeyGenerator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#getInstance-java.lang.String-java.lang.String-">getInstance</a></span>(<a href="../../java/lang/String.html" title="class in java.lang">String</a> algorithm, <a href="../../java/lang/String.html" title="class in java.lang">String</a> provider)</code>
<div class="block">
返回一个
<code>KeyGenerator</code>对象,该对象为指定的算法生成密钥。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="../../java/security/Provider.html" title="class in java.security">Provider</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#getProvider--">getProvider</a></span>()</code>
<div class="block">
返回此
<code>KeyGenerator</code>对象的提供者。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#init-java.security.spec.AlgorithmParameterSpec-">init</a></span>(<a href="../../java/security/spec/AlgorithmParameterSpec.html" title="interface in java.security.spec">AlgorithmParameterSpec</a> params)</code>
<div class="block">
使用指定的参数集初始化此密钥生成器。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#init-java.security.spec.AlgorithmParameterSpec-java.security.SecureRandom-">init</a></span>(<a href="../../java/security/spec/AlgorithmParameterSpec.html" title="interface in java.security.spec">AlgorithmParameterSpec</a> params, <a href="../../java/security/SecureRandom.html" title="class in java.security">SecureRandom</a> random)</code>
<div class="block">
使用指定的参数集和用户提供的随机源初始化此密钥生成器。
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#init-int-">init</a></span>(int keysize)</code>
<div class="block">
初始化此密钥生成器用于某些密钥大小。
</div> </td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#init-int-java.security.SecureRandom-">init</a></span>(int keysize, <a href="../../java/security/SecureRandom.html" title="class in java.security">SecureRandom</a> random)</code>
<div class="block">
使用用户提供的随机源,初始化该密钥生成器以进行某些密钥化。
</div> </td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/KeyGenerator.html#init-java.security.SecureRandom-">init</a></span>(<a href="../../java/security/SecureRandom.html" title="class in java.security">SecureRandom</a> random)</code>
<div class="block">
初始化此密钥生成器。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../java/lang/Object.html#clone--">clone</a>, <a href="../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../java/lang/Object.html#notify--">notify</a>, <a href="../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../java/lang/Object.html#toString--">toString</a>, <a href="../../java/lang/Object.html#wait--">wait</a>, <a href="../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="KeyGenerator-javax.crypto.KeyGeneratorSpi-java.security.Provider-java.lang.String-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>KeyGenerator</h4> <pre>protected KeyGenerator(<a href="../../javax/crypto/KeyGeneratorSpi.html" title="class in javax.crypto">KeyGeneratorSpi</a> keyGenSpi,
<a href="../../java/security/Provider.html" title="class in java.security">Provider</a> provider,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</pre>
<div class="block">
创建一个KeyGenerator对象。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>keyGenSpi</code> - 代表
</dd>
<dd>
<code>provider</code> - 提供商
</dd>
<dd>
<code>algorithm</code> - 算法
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getAlgorithm--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getAlgorithm</h4> <pre>public final <a href="../../java/lang/String.html" title="class in java.lang">String</a> getAlgorithm()</pre>
<div class="block">
<span>返回此<code>KeyGenerator</code>对象的算法名称。</span>
<p> <span>这是在创建此<code>KeyGenerator</code>对象的<code>getInstance</code>调用之一中指定的<code>getInstance</code></span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
这个
<code>KeyGenerator</code>对象的算法名称。
</dd>
</dl> </li>
</ul> <a name="getInstance-java.lang.String-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getInstance</h4> <pre>public static final <a href="../../javax/crypto/KeyGenerator.html" title="class in javax.crypto">KeyGenerator</a> getInstance(<a href="../../java/lang/String.html" title="class in java.lang">String</a> algorithm)
throws <a href="../../java/security/NoSuchAlgorithmException.html" title="class in java.security">NoSuchAlgorithmException</a></pre>
<div class="block">
<span>返回一个<code>KeyGenerator</code>对象,该对象为指定的算法生成密钥。</span>
<p> <span>此方法遍历已注册的安全提供程序列表,从最优选的提供程序开始。</span> <span>返回从支持指定算法的第一个Provider中封装KeyGeneratorSpi实现的新KeyGenerator对象。</span> </p>
<p> <span>请注意,注册提供商的列表可以通过<a href="../../java/security/Security.html#getProviders--"><code>Security.getProviders()</code></a>方法<a href="../../java/security/Security.html#getProviders--">检索</a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>algorithm</code> - 请求密钥算法的标准名称。</span>
<span>看到的的KeyGenerator部分<a href="../../../technotes/guides/security/StandardNames.html#KeyGenerator">Java Cryptography Architecture Standard Algorithm Name Documentation</a>有关标准算法名称的信息。</span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的
<code>KeyGenerator</code>对象。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果指定的算法为空。
</dd>
<dd>
<code><a href="../../java/security/NoSuchAlgorithmException.html" title="class in java.security">NoSuchAlgorithmException</a></code> - 如果没有提供者支持指定算法的KeyGeneratorSpi实现。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../java/security/Provider.html" title="java.security中的类"><code>Provider</code></a></span>
</dd>
</dl> </li>
</ul> <a name="getInstance-java.lang.String-java.lang.String-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getInstance</h4> <pre>public static final <a href="../../javax/crypto/KeyGenerator.html" title="class in javax.crypto">KeyGenerator</a> getInstance(<a href="../../java/lang/String.html" title="class in java.lang">String</a> algorithm,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> provider)
throws <a href="../../java/security/NoSuchAlgorithmException.html" title="class in java.security">NoSuchAlgorithmException</a>,
<a href="../../java/security/NoSuchProviderException.html" title="class in java.security">NoSuchProviderException</a></pre>
<div class="block">
<span>返回一个<code>KeyGenerator</code>对象,该对象为指定的算法生成密钥。</span>
<p> <span>返回从指定提供程序封装KeyGeneratorSpi实现的新KeyGenerator对象。</span> <span>指定的提供者必须在安全提供程序列表中注册。</span> </p>
<p> <span>请注意,注册提供商的列表可以通过<a href="../../java/security/Security.html#getProviders--"><code>Security.getProviders()</code></a>方法<a href="../../java/security/Security.html#getProviders--">检索</a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>algorithm</code> - 请求密钥算法的标准名称。</span>
<span>看到的的KeyGenerator部分<a href="../../../technotes/guides/security/StandardNames.html#KeyGenerator">Java Cryptography Architecture Standard Algorithm Name Documentation</a>有关标准算法名称的信息。</span>
</dd>
<dd>
<code>provider</code> - 提供者的名称。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的
<code>KeyGenerator</code>对象。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果指定的算法为空。
</dd>
<dd>
<code><a href="../../java/security/NoSuchAlgorithmException.html" title="class in java.security">NoSuchAlgorithmException</a></code> - 如果指定算法的KeyGeneratorSpi实现从指定的提供程序中不可用。
</dd>
<dd>
<code><a href="../../java/security/NoSuchProviderException.html" title="class in java.security">NoSuchProviderException</a></code> - 如果指定的提供程序未在安全提供程序列表中注册。
</dd>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果
<code>provider</code>为空或为空。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../java/security/Provider.html" title="java.security中的类"><code>Provider</code></a></span>
</dd>
</dl> </li>
</ul> <a name="getInstance-java.lang.String-java.security.Provider-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getInstance</h4> <pre>public static final <a href="../../javax/crypto/KeyGenerator.html" title="class in javax.crypto">KeyGenerator</a> getInstance(<a href="../../java/lang/String.html" title="class in java.lang">String</a> algorithm,
<a href="../../java/security/Provider.html" title="class in java.security">Provider</a> provider)
throws <a href="../../java/security/NoSuchAlgorithmException.html" title="class in java.security">NoSuchAlgorithmException</a></pre>
<div class="block">
<span>返回一个<code>KeyGenerator</code>对象,该对象为指定的算法生成密钥。</span>
<p> <span>返回从指定的Provider对象封装KeyGeneratorSpi实现的新KeyGenerator对象。</span> <span>请注意指定的Provider对象不必在提供者列表中注册。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>algorithm</code> - 所请求密钥算法的标准名称。</span>
<span>看到的的KeyGenerator部分<a href="../../../technotes/guides/security/StandardNames.html#KeyGenerator">Java Cryptography Architecture Standard Algorithm Name Documentation</a>有关标准算法名称的信息。</span>
</dd>
<dd>
<code>provider</code> - 提供商。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的
<code>KeyGenerator</code>对象。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果指定的算法为空。
</dd>
<dd>
<code><a href="../../java/security/NoSuchAlgorithmException.html" title="class in java.security">NoSuchAlgorithmException</a></code> - 如果指定的算法的KeyGeneratorSpi实现从指定的Provider对象不可用。
</dd>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果
<code>provider</code>为空。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../java/security/Provider.html" title="java.security中的类"><code>Provider</code></a></span>
</dd>
</dl> </li>
</ul> <a name="getProvider--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getProvider</h4> <pre>public final <a href="../../java/security/Provider.html" title="class in java.security">Provider</a> getProvider()</pre>
<div class="block">
返回此
<code>KeyGenerator</code>对象的提供者。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
这个
<code>KeyGenerator</code>对象的提供者
</dd>
</dl> </li>
</ul> <a name="init-java.security.SecureRandom-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>init</h4> <pre>public final void init(<a href="../../java/security/SecureRandom.html" title="class in java.security">SecureRandom</a> random)</pre>
<div class="block">
初始化此密钥生成器。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>random</code> - 该发生器的随机性来源
</dd>
</dl> </li>
</ul> <a name="init-java.security.spec.AlgorithmParameterSpec-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>init</h4> <pre>public final void init(<a href="../../java/security/spec/AlgorithmParameterSpec.html" title="interface in java.security.spec">AlgorithmParameterSpec</a> params)
throws <a href="../../java/security/InvalidAlgorithmParameterException.html" title="class in java.security">InvalidAlgorithmParameterException</a></pre>
<div class="block">
<span>使用指定的参数集初始化此密钥生成器。</span>
<p> <span>如果此密钥生成器需要随机字节,它会使用让他们<a href="../../java/security/SecureRandom.html" title="java.security中的类"><code>SecureRandom</code></a>实现的最高优先级安装的提供作为随机源。</span> <span>如果没有一个已安装的提供商提供SecureRandom的实现将会使用系统提供的随机源。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>params</code> - 密钥生成参数
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/security/InvalidAlgorithmParameterException.html" title="class in java.security">InvalidAlgorithmParameterException</a></code> - 如果给定的参数不适合此密钥生成器
</dd>
</dl> </li>
</ul> <a name="init-java.security.spec.AlgorithmParameterSpec-java.security.SecureRandom-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>init</h4> <pre>public final void init(<a href="../../java/security/spec/AlgorithmParameterSpec.html" title="interface in java.security.spec">AlgorithmParameterSpec</a> params,
<a href="../../java/security/SecureRandom.html" title="class in java.security">SecureRandom</a> random)
throws <a href="../../java/security/InvalidAlgorithmParameterException.html" title="class in java.security">InvalidAlgorithmParameterException</a></pre>
<div class="block">
使用指定的参数集和用户提供的随机源初始化此密钥生成器。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>params</code> - 密钥生成参数
</dd>
<dd>
<code>random</code> - 这个密钥生成器的随机源
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/security/InvalidAlgorithmParameterException.html" title="class in java.security">InvalidAlgorithmParameterException</a></code> - 如果
<code>params</code>不适合此密钥生成器
</dd>
</dl> </li>
</ul> <a name="init-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>init</h4> <pre>public final void init(int keysize)</pre>
<div class="block">
<span>初始化此密钥生成器用于某些密钥大小。</span>
<p> <span>如果此密钥生成器需要随机字节,它会使用让他们<a href="../../java/security/SecureRandom.html" title="java.security中的类"><code>SecureRandom</code></a>实现的最高优先级安装的提供作为随机源。</span> <span>如果没有一个已安装的提供商提供SecureRandom的实现将会使用系统提供的随机源。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>keysize</code> - <code>keysize</code></span>
<span>这是一个以比特数表示的算法特定度量。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/security/InvalidParameterException.html" title="class in java.security">InvalidParameterException</a></code> - 如果keysize错误或不支持。
</dd>
</dl> </li>
</ul> <a name="init-int-java.security.SecureRandom-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>init</h4> <pre>public final void init(int keysize,
<a href="../../java/security/SecureRandom.html" title="class in java.security">SecureRandom</a> random)</pre>
<div class="block">
使用用户提供的随机源,初始化该密钥生成器以进行某些密钥化。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>keysize</code> - <code>keysize</code></span>
<span>这是一个以比特数表示的算法特定度量。</span>
</dd>
<dd>
<code>random</code> - 这个密钥生成器的随机源
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/security/InvalidParameterException.html" title="class in java.security">InvalidParameterException</a></code> - 如果
<code><a href="../../java/security/InvalidParameterException.html" title="class in java.security">InvalidParameterException</a></code>错误或不支持。
</dd>
</dl> </li>
</ul> <a name="generateKey--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>generateKey</h4> <pre>public final <a href="../../javax/crypto/SecretKey.html" title="interface in javax.crypto">SecretKey</a> generateKey()</pre>
<div class="block">
生成一个秘密密钥。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的钥匙
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>