本示例演示使用DES算法加密对象。加密对象后,我们将其存储在文件中,该文件将在下一个示例中解密,该如何使用DES解密对象。
package org.nhooo.example.crypto; import java.io.*; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SealedObject; import javax.crypto.SecretKey; public class ObjectEncrypt { public static void main(String[] args) throws Exception { // 生成临时密钥并将其存储在文件中。 SecretKey key = KeyGenerator.getInstance("DES").generateKey(); writeToFile("secretkey.dat", key); // 准备用于加密的密码对象。 Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key); // 在这里,我们密封(加密)简单的字符串消息(字符串对象)。 SealedObject sealedObject = new SealedObject("THIS IS A SECRET MESSAGE!", cipher); // 将对象作为二进制文件写出。 writeToFile("sealed.dat", sealedObject); } // 将对象存储在文件中以备将来使用。 private static void writeToFile(String filename, Object object) throws Exception { try (FileOutputStream fos = new FileOutputStream(new File(filename)); ObjectOutputStream oos = new ObjectOutputStream(fos)) { oos.writeObject(object); } } }