JavaTM 2 Platform
Standard Ed. 6

javax.crypto.spec
類別 PBEKeySpec

java.lang.Object
  繼承者 javax.crypto.spec.PBEKeySpec
所有已實作的介面:
KeySpec

public class PBEKeySpec
extends Object
implements KeySpec

可隨同基於密碼的加密法 (PBE) 使用的供使用者選擇的密碼。

可以將密碼視為某種原始密鑰內容,由此加密機制使用其導出一個密鑰。

不同的 PBE 機制可能對每一個密碼字元使用不同的位數。例如,在 PKCS #5 中定義的 PEB 機制僅僅關注每一個字元的低 8 位,而 PKCS #12 關注每一個字元的全 16 位。

通過創建一個合適的密鑰處理器實例來將密碼轉換成為一個 PBE 密鑰。例如,PKCS #5 的密鑰處理器僅根據每個密碼字元的低 8 位來建構 PBE 密鑰,而 PKCS #12 的密鑰處理器將使用每個字元的全 16 位。

還要注意,此類別以 char 陣列而不是 String 物件的形式存儲密碼(這可能更具邏輯性),因為 String 類別是不可變的,當不再需要存儲在其中的密碼時沒有任何途徑來覆寫其內部值。因此,此類別需要以 char 陣列作密碼,以便在完成後進行覆寫。

從以下版本開始:
1.4
另請參見:
SecretKeyFactory, PBEParameterSpec

建構子摘要
PBEKeySpec(char[] password)
          帶有一個密碼的建構子。
PBEKeySpec(char[] password, byte[] salt, int iterationCount)
          帶有產生固定密鑰大小的 PBE 密碼的 PBEKey 時使用的一個密碼、salt、迭代數的建構子。
PBEKeySpec(char[] password, byte[] salt, int iterationCount, int keyLength)
          帶有產生可變密鑰大小的 PBE 密碼的 PBEKey 時使用的一個密碼、salt、迭代計數以及導出密鑰長度的建構子。
 
方法摘要
 void clearPassword()
          清空密碼的內部副本。
 int getIterationCount()
          返回迭代計數,如果未指定則返回 0。
 int getKeyLength()
          返回要導出的密鑰長度,如果未指定則返回 0。
 char[] getPassword()
          返回密碼的一份副本。
 byte[] getSalt()
          返回 salt 的一份副本,如果未指定則返回 null。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

PBEKeySpec

public PBEKeySpec(char[] password)
帶有一個密碼的建構子。如果指定了 null,則使用一個空 char[]。

註:在將 password 存儲進新的 PBEKeySpec 物件前將其複製。

參數:
password - 密碼。

PBEKeySpec

public PBEKeySpec(char[] password,
                  byte[] salt,
                  int iterationCount,
                  int keyLength)
帶有產生可變密鑰大小的 PBE 密碼的 PBEKey 時使用的一個密碼、salt、迭代計數以及導出密鑰長度的建構子。如果指定 password 為 null,則使用一個空 char[]。

註:在將 passwordsalt 存儲進新的 PBEKeySpec 物件前將其複製。

參數:
password - 密碼。
salt - salt。
iterationCount - 迭代計數。
keyLength - 要導出的密鑰長度。
拋出:
NullPointerException - 如果 salt 為 null。
IllegalArgumentException - 如果 salt 為空(即 0 長度)、iterationCountkeyLength 不為正。

PBEKeySpec

public PBEKeySpec(char[] password,
                  byte[] salt,
                  int iterationCount)
帶有產生固定密鑰大小的 PBE 密碼的 PBEKey 時使用的一個密碼、salt、迭代數的建構子。如果指定 password 為 null,則使用一個空 char[]。

註:在將 passwordsalt 存儲進新的 PBEKeySpec 物件前將其複製。

參數:
password - 密碼。
salt - salt。
iterationCount - 迭代計數。
拋出:
NullPointerException - 如果 salt 為 null。
IllegalArgumentException - 如果 salt 為空(即 0 長度),或者 iterationCount 不為正。
方法詳細資訊

clearPassword

public final void clearPassword()
清空密碼的內部副本。


getPassword

public final char[] getPassword()
返回密碼的一份副本。

註:此方法返回密碼的一份副本。調用者負責在不再需要密碼後清空密碼資訊。

返回:
密碼。
拋出:
IllegalStateException - 如果密碼已通過調用 clearPassword 方法被清除。

getSalt

public final byte[] getSalt()
返回 salt 的一份副本,如果未指定則返回 null。

註:此方法應返回 salt 的一份副本。調用者負責在不再需要 salt 後清空 salt 資訊。

返回:
salt。

getIterationCount

public final int getIterationCount()
返回迭代計數,如果未指定則返回 0。

返回:
迭代計數。

getKeyLength

public final int getKeyLength()
返回要導出的密鑰長度,如果未指定則返回 0。

註:此方法用於指出可變密鑰大小密碼的首選密鑰長度。實際的密鑰大小依賴於每一個提供者的實作。

返回:
要導出的密鑰長度。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only