Kluczowe obiekty i kluczowe parametry (KeySpecs) to dwie różne reprezentacje kluczowych danych.
Szyfry używają kluczy do zainicjowania swoich algorytmów szyfrowania, ale klucze mogą wymagać przekonwertowania na bardziej przenośny format do przesyłania lub przechowywania.
Przejrzyste odwzorowanie kluczy oznacza, że można uzyskać dostęp do każdej wartości materiału kluczowego indywidualnie, za pomocą jednej z metod pobierania określonych w odpowiedniej klasie specyfikacji.
For example, DSAPrivateKeySpec defines getX, getP, getQ, and getG methods, to access the private key x, and the DSA algorithm parameters used to calculate the key(the prime p, the sub-prime q, and the base g).
Jeśli klucz jest przechowywany na urządzeniu sprzętowym, jego specyfikacja może zawierać informację, która pozwala zidentyfikować klawisz na reprezentację device.This kontrastuje z nieprzezroczystego reprezentacji, zgodnie z definicją interfejsu Key, w którym nie mają bezpośredniego dostępu do kluczowych pól materiałowych. Innymi słowy, "nieprzejrzysta" reprezentacja daje ci ograniczony dostęp do klucza - tylko trzy metody zdefiniowane przez interfejs Key: getAlgorithm, getFormat i getEncoded.
Klucz może być określony w sposób specyficzny dla algorytmu lub w formacie kodowania niezależnym od algorytmu (takim jak ASN.1).
For example, a DSA private key may be specified by its components x, p, q, and g (eg: DSAPrivateKeySpec), or it may be specified using its DER encoding (eg: PKCS8EncodedKeySpec).
KeyFactory i zajęcia SecretKeyFactory może być użyty do konwersji pomiędzy nieprzezroczystych i przezroczystych najważniejszych przedstawień czyli między Keys i KeySpecs.
referencyjny i więcej szczegółów dostępne na stronie: https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html#KeySpecs