uTools-Manuals/docs/java/javax/crypto/spec/SecretKeySpec.html

373 lines
17 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.spec
</div>
<h2 class="title" title="Class SecretKeySpec">Class SecretKeySpec</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.spec.SecretKeySpec</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Implemented Interfaces:
</dt>
<dd>
<span><a href="../../../java/io/Serializable.html" title="java.io中的接口">Serializable</a> <a href="../../../java/security/Key.html" title="java.security中的接口">Key</a> <a href="../../../java/security/spec/KeySpec.html" title="java.security.spec中的接口">KeySpec</a> <a href="../../../javax/crypto/SecretKey.html" title="javax.crypto中的接口">SecretKey</a> <a href="../../../javax/security/auth/Destroyable.html" title="javax.security.auth中的接口">Destroyable</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public class <span class="typeNameLabel">SecretKeySpec</span>
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a>
implements <a href="../../../java/security/spec/KeySpec.html" title="interface in java.security.spec">KeySpec</a>, <a href="../../../javax/crypto/SecretKey.html" title="interface in javax.crypto">SecretKey</a></pre>
<div class="block">
<span>该类以独立于提供商的方式指定密钥。</span>
<p> <span>它可以用于从字节数组构造一个<code>SecretKey</code> ,而无需经过(基于提供者的) <code>SecretKeyFactory</code></span> </p>
<p> <span>此类仅对可以表示为字节数组并且没有与其相关联的关键参数的原始密钥例如DES或三重DES密钥有用。</span> </p>
</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> <a href="../../../javax/crypto/SecretKeyFactory.html" title="javax.crypto中的类"><code>SecretKeyFactory</code></a> <a href="../../../serialized-form.html#javax.crypto.spec.SecretKeySpec">Serialized Form</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../javax/crypto/spec/SecretKeySpec.html#SecretKeySpec-byte:A-int-int-java.lang.String-">SecretKeySpec</a></span>(byte[] key, int offset, int len, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</code>
<div class="block">
根据给定的字节数组的秘密密钥,使用所述第一
<code>len</code>的字节
<code>key</code> ,起始于
<code>offset</code>以下。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../javax/crypto/spec/SecretKeySpec.html#SecretKeySpec-byte:A-java.lang.String-">SecretKeySpec</a></span>(byte[] key, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</code>
<div class="block">
从给定的字节数组构造一个秘密密钥。
</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="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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/crypto/spec/SecretKeySpec.html#equals-java.lang.Object-">equals</a></span>(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> obj)</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/spec/SecretKeySpec.html#getAlgorithm--">getAlgorithm</a></span>()</code>
<div class="block">
返回与该密钥相关联的算法的名称。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/crypto/spec/SecretKeySpec.html#getEncoded--">getEncoded</a></span>()</code>
<div class="block">
返回此密钥的密钥材料。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<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/spec/SecretKeySpec.html#getFormat--">getFormat</a></span>()</code>
<div class="block">
返回此密钥的编码格式的名称。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/crypto/spec/SecretKeySpec.html#hashCode--">hashCode</a></span>()</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#finalize--">finalize</a>, <a href="../../../java/lang/Object.html#getClass--">getClass</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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.security.auth.Destroyable">
<!-- --> </a> <h3>Methods inherited from interface javax.security.auth.<a href="../../../javax/security/auth/Destroyable.html" title="interface in javax.security.auth">Destroyable</a></h3> <code><a href="../../../javax/security/auth/Destroyable.html#destroy--">destroy</a>, <a href="../../../javax/security/auth/Destroyable.html#isDestroyed--">isDestroyed</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="SecretKeySpec-byte:A-java.lang.String-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>SecretKeySpec</h4> <pre>public SecretKeySpec(byte[] key,
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</pre>
<div class="block">
<span>从给定的字节数组构造一个秘密密钥。</span>
<p> <span>该构造函数不检查给定字节是否确实指定了指定算法的秘密密钥。</span> <span>例如如果算法是DES那么这个构造函数不会检查<code>key</code>是否为8个字节长也不会检查弱或半弱的密钥。</span> <span>为了执行这些检查,应该使用特定于算法的<i>密钥规范</i>类(在这种情况下为<a href="../../../javax/crypto/spec/DESKeySpec.html" title="javax.crypto.spec中的类"><code>DESKeySpec</code></a> )。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>key</code> - 密钥的关键材料。</span>
<span>复制数组的内容以防止后续修改。</span>
</dd>
<dd>
<span><code>algorithm</code> - 与给定密钥材料相关联的秘密密钥算法的名称。</span>
<span>有关标准算法名称的信息,请参阅<a href="../../../../technotes/guides/security/crypto/CryptoSpec.html#AppA">Java Cryptography Architecture Reference Guide</a>中的附录A.</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果
<code>algorithm</code>为空或
<code>key</code>为空或为空。
</dd>
</dl> </li>
</ul> <a name="SecretKeySpec-byte:A-int-int-java.lang.String-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>SecretKeySpec</h4> <pre>public SecretKeySpec(byte[] key,
int offset,
int len,
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</pre>
<div class="block">
<span>根据给定的字节数组的秘密密钥,使用所述第一<code>len</code>的字节<code>key</code> ,起始于<code>offset</code>以下。</span>
<p> <span>构成密钥的字节在之间<code>key[offset]</code><code>key[offset+len-1]</code>包容性。</span> </p>
<p> <span>该构造函数不检查给定字节是否确实指定了指定算法的秘密密钥。</span> <span>例如如果算法是DES那么这个构造函数不会检查<code>key</code>是否为8个字节长也不会检查弱或半弱的密钥。</span> <span>为了执行这些检查,必须使用特定于算法的密钥规范类(在这种情况下为<a href="../../../javax/crypto/spec/DESKeySpec.html" title="javax.crypto.spec中的类"><code>DESKeySpec</code></a> )。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>key</code> - 密钥的关键材料。</span>
<span>第一<code>len</code>字节开始处所述阵列的<code>offset</code>包容被复制到防止后续修改。</span>
</dd>
<dd>
<code>offset</code> - 关键材料启动时的偏移量
<code>key</code>
</dd>
<dd>
<code>len</code> - 关键材料的长度。
</dd>
<dd>
<span><code>algorithm</code> - 与给定密钥材料相关联的秘密密钥算法的名称。</span>
<span>有关标准算法名称的信息,请参阅<a href="../../../../technotes/guides/security/crypto/CryptoSpec.html#AppA">Java Cryptography Architecture Reference Guide</a>中的附录A.</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果
<code>algorithm</code>为null或
<code>key</code>为空,空或太短,即
<code>key.length-offset&lt;len</code>
</dd>
<dd>
<code><a href="../../../java/lang/ArrayIndexOutOfBoundsException.html" title="class in java.lang">ArrayIndexOutOfBoundsException</a></code> - 如果
<code>offset</code>
<code>len</code>索引字节在
<code>key</code>之外
<code>key</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 <a href="../../../java/lang/String.html" title="class in java.lang">String</a> getAlgorithm()</pre>
<div class="block">
返回与该密钥相关联的算法的名称。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../java/security/Key.html#getAlgorithm--">getAlgorithm</a></code>在界面
<code><a href="../../../java/security/Key.html" title="interface in java.security">Key</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
秘密密钥算法。
</dd>
</dl> </li>
</ul> <a name="getFormat--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getFormat</h4> <pre>public <a href="../../../java/lang/String.html" title="class in java.lang">String</a> getFormat()</pre>
<div class="block">
返回此密钥的编码格式的名称。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../java/security/Key.html#getFormat--">getFormat</a></code>在界面
<code><a href="../../../java/security/Key.html" title="interface in java.security">Key</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
字符串“RAW”。
</dd>
</dl> </li>
</ul> <a name="getEncoded--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getEncoded</h4> <pre>public byte[] getEncoded()</pre>
<div class="block">
返回此密钥的密钥材料。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../java/security/Key.html#getEncoded--">getEncoded</a></code>在界面
<code><a href="../../../java/security/Key.html" title="interface in java.security">Key</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>关键材料。</span>
<span>每次调用此方法时都会返回一个新数组。</span>
</dd>
</dl> </li>
</ul> <a name="hashCode--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>hashCode</h4> <pre>public int hashCode()</pre>
<div class="block">
<span>计算对象的哈希码值。</span>
<span>相等的对象也将具有相同的哈希码。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../java/lang/Object.html#hashCode--">hashCode</a></code>
<code><a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
该对象的哈希码值。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../java/lang/Object.html#equals-java.lang.Object-"><code>Object.equals(java.lang.Object)</code></a>
<a href="../../../java/lang/System.html#identityHashCode-java.lang.Object-"><code>System.identityHashCode(java.lang.Object)</code></a>
</dd>
</dl> </li>
</ul> <a name="equals-java.lang.Object-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>equals</h4> <pre>public boolean equals(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> obj)</pre>
<div class="block">
<span>测试指定对象和此对象之间的相等性。</span>
<span>如果两个SecretKeySpec对象都是具有相同的不区分大小写的算法名称和密钥编码的SecretKey实例则它们被认为是相等的。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../java/lang/Object.html#equals-java.lang.Object-">equals</a></code>在类别
<code><a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>obj</code> - 测试与此对象相等的对象。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
如果对象被认为是相等的则为true
<code>obj</code>
<code>obj</code>为false。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../java/lang/Object.html#hashCode--"><code>Object.hashCode()</code></a> <a href="../../../java/util/HashMap.html" title="java.util中的类"><code>HashMap</code></a></span>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>