Java Language
Objets sécurisés
Recherche…
Syntaxe
- SealedObject sealedObject = new SealedObject (obj, cipher);
- SignedObject signedObject = new SignedObject (obj, signedKey, signedEngine);
SealedObject (javax.crypto.SealedObject)
Cette classe permet à un programmeur de créer un objet et de protéger sa confidentialité avec un algorithme cryptographique.
Étant donné tout objet Serializable, on peut créer un objet SealedObject qui encapsule l'objet d'origine, au format sérialisé (c.-à-d. Une copie profonde), et scelle (crypte) son contenu sérialisé en utilisant un algorithme cryptographique tel que AES, DES. sa confidentialité. Le contenu chiffré peut ensuite être déchiffré (avec l'algorithme correspondant à l'aide de la clé de déchiffrement correcte) et désérialisé, ce qui permet d'obtenir l'objet d'origine.
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 est une classe destinée à créer des objets d'exécution authentiques dont l'intégrité ne peut être compromise sans être détectée.
Plus précisément, un objet SignedObject contient un autre objet Serializable, l’objet (à signer) et sa signature.
//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());