Java Language
Защищенные объекты
Поиск…
Синтаксис
- SealedObject sealedObject = новый SealedObject (obj, cipher);
- SignedObject signedObject = новый SignedObject (obj, signedKey, signedEngine);
SealedObject (javax.crypto.SealedObject)
Этот класс позволяет программисту создать объект и защитить его конфиденциальность криптографическим алгоритмом.
Для любого объекта Serializable можно создать объект SealedObject, который инкапсулирует исходный объект в последовательном формате (т. Е. «Глубокую копию») и печатает (шифрует) его сериализованное содержимое, используя криптографический алгоритм, такой как AES, DES, для защиты его конфиденциальность. Зашифрованный контент впоследствии может быть дешифрован (с соответствующим алгоритмом с использованием правильного ключа дешифрования) и де-сериализован, что даст исходный объект.
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 - это класс с целью создания аутентичных объектов времени исполнения, целостность которых не может быть скомпрометирована без обнаружения.
Более конкретно, SignedObject содержит другой объект Serializable, объект (to-be-), подписанный и его подпись.
//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());