Java如何使用DES解密对象?
在前面的示例中,如何使用DES加密对象?我们加密一个对象。在此示例中,我们将解密存储的对象。
package org.nhooo.example.crypto;
import java.io.*;
import javax.crypto.SecretKey;
import javax.crypto.Cipher;
import javax.crypto.SealedObject;
public class ObjectDecrypt {
public static void main(String[] args) throws Exception {
//阅读以前存储的SecretKey。
SecretKey key = (SecretKey) readFromFile("secretkey.dat");
//读取SealedObject
SealedObject sealedObject = (SealedObject) readFromFile("sealed.dat");
//从解密中准备密码对象。
if (sealedObject != null) {
String algorithmName = sealedObject.getAlgorithm();
Cipher cipher = Cipher.getInstance(algorithmName);
cipher.init(Cipher.DECRYPT_MODE, key);
String text = (String) sealedObject.getObject(cipher);
System.out.println("Text = " + text);
}
}
//读取文件中存储的对象的方法。
private static Object readFromFile(String filename) throws Exception {
try (FileInputStream fis = new FileInputStream(new File(filename));
ObjectInputStream ois = new ObjectInputStream(fis)) {
return ois.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}