Java/Security/Seal Unseal

Материал из Java эксперт
Версия от 18:01, 31 мая 2010; (обсуждение)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Use DES To Seal And UnSeal Object

import java.io.Serializable;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SealedObject;
import javax.crypto.SecretKey;
public class MainClass {
  public static void main(String args[]) throws Exception {
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    SecretKey secretKey;
    Cipher encrypter, decrypter;
    secretKey = KeyGenerator.getInstance("DES").generateKey();
    encrypter = Cipher.getInstance("DES");
    encrypter.init(Cipher.ENCRYPT_MODE, secretKey);
    decrypter = Cipher.getInstance("DES");
    decrypter.init(Cipher.DECRYPT_MODE, secretKey);
    MyClass cust, unsealed;
    SealedObject sealed;
    cust = new MyClass();
    cust.name = "Paul";
    cust.password = "password";
    // Seal it, storing it in a SealedObject
    sealed = (new SealedObject(cust, encrypter));
    // Try unsealing it
    String algorithmName = sealed.getAlgorithm();
    System.out.println(algorithmName);
    unsealed = (MyClass) sealed.getObject(decrypter);
    System.out.println("NAME: " + unsealed.name);
    System.out.println("PASSWORD: " + unsealed.password);
  }
}
class MyClass implements Serializable {
  public String name;
  public String password;
}