java实现对称加密(DES)

来源:互联网 发布:快速傅里叶变换算法 编辑:程序博客网 时间:2024/05/21 14:51

  对称加密有许多方法,这次用最老的方法DES实现加密

package cn.huse.des;import java.security.Key;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;public class DESDemo {private static String src = "How old are you";public static void main(String[] args) {jdkDES();}public static void jdkDES(){try {//生成KEYKeyGenerator keyGenerator = KeyGenerator.getInstance("DES");keyGenerator.init(56);SecretKey secretKey = keyGenerator.generateKey();byte[] encoded = secretKey.getEncoded();//KEY的转换DESKeySpec desKeySpec = new DESKeySpec(encoded);SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");Key key = factory.generateSecret(desKeySpec);//加密Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, key);byte[] result = cipher.doFinal(src.getBytes());//System.out.println("jdk des encrypt: "+new String(result));//解密cipher.init(Cipher.DECRYPT_MODE, key);result = cipher.doFinal(result);System.out.println(new String(result));} catch (Exception e) {e.printStackTrace();}}}


0 0