Java Language
Bezpieczne obiekty
Szukaj…
Składnia
- SealedObject sealedObject = nowy SealedObject (obj, szyfr);
- SignedObject podpisanyObject = nowy SignedObject (obj, signingKey, signingEngine);
SealedObject (javax.crypto.SealedObject)
Ta klasa umożliwia programiście tworzenie obiektu i ochronę jego poufności za pomocą algorytmu kryptograficznego.
Biorąc pod uwagę dowolny obiekt nadający się do serializacji, można utworzyć obiekt SealedObject, który hermetyzuje oryginalny obiekt w formacie zserializowanym (tj. „Głęboką kopię”) i uszczelnia (szyfruje) jego serializowaną zawartość, używając algorytmu kryptograficznego, takiego jak AES, DES, w celu ochrony jego poufność. Zaszyfrowaną treść można później odszyfrować (za pomocą odpowiedniego algorytmu przy użyciu prawidłowego klucza odszyfrowującego) i zdezserializować, uzyskując oryginalny obiekt.
Serializable obj = new String("John");
// Generate key
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128);
SecretKey aesKey = kgen.generateKey();
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, aesKey);
SealedObject sealedObject = new SealedObject(obj, cipher);
System.out.println("sealedObject-" + sealedObject);
System.out.println("sealedObject Data-" + sealedObject.getObject(aesKey));
SignedObject (java.security.SignedObject)
SignedObject to klasa do tworzenia autentycznych obiektów wykonawczych, których integralność nie może zostać naruszona bez wykrycia.
Mówiąc dokładniej, SignedObject zawiera inny obiekt Serializable, (podpisany) obiekt i jego podpis.
//Create a key
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.initialize(1024, random);
// create a private key
PrivateKey signingKey = keyGen.generateKeyPair().getPrivate();
// create a Signature
Signature signingEngine = Signature.getInstance("DSA");
signingEngine.initSign(signingKey);
// create a simple object
Serializable obj = new String("John");
// sign our object
SignedObject signedObject = new SignedObject(obj, signingKey, signingEngine);
System.out.println("signedObject-" + signedObject);
System.out.println("signedObject Data-" + signedObject.getObject());