Java实现DES加密解密代码
2018-07-20 来源:open-open
import java.io.IOException; import java.io.Serializable; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.SealedObject; import javax.crypto.SecretKey; public class EncryptDecryptObjectWithDES { private static Cipher ecipher; private static Cipher dcipher; private static SecretKey key; public static void main(String[] args) { try { // generate secret key using DES algorithm key = KeyGenerator.getInstance("DES").generateKey(); ecipher = Cipher.getInstance("DES"); dcipher = Cipher.getInstance("DES"); // initialize the ciphers with the given key ecipher.init(Cipher.ENCRYPT_MODE, key); dcipher.init(Cipher.DECRYPT_MODE, key); // create a sealed object SealedObject sealed = new SealedObject(new SecretObject("My secret message"), ecipher); // get the algorithm with the object has been sealed String algorithm = sealed.getAlgorithm(); System.out.println("Algorithm " + algorithm); // unseal (decrypt) the object SecretObject o = (SecretObject) sealed.getObject(dcipher); System.out.println("Original Object: " + o); } catch (NoSuchAlgorithmException e) { System.out.println("No Such Algorithm:" + e.getMessage()); return; } catch (NoSuchPaddingException e) { System.out.println("No Such Padding:" + e.getMessage()); return; } catch (BadPaddingException e) { System.out.println("Bad Padding:" + e.getMessage()); return; } catch (InvalidKeyException e) { System.out.println("Invalid Key:" + e.getMessage()); return; } catch (IllegalBlockSizeException e) { System.out.println("Illegal Block:" + e.getMessage()); return; } catch (ClassNotFoundException e) { System.out.println("Class Not Found:" + e.getMessage()); return; } catch (IOException e) { System.out.println("I/O Error:" + e.getMessage()); return; } } public static class SecretObject implements Serializable { private static final long serialVersionUID = -1335351770906357695L; private final String message; public SecretObject(String message) { this.message = message; } @Override public String toString() { return "SecretObject [message=" + message + "]"; } } }
输出:
Algorithm DES Original Object: SecretObject [message=My secret message]
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐