多语言展示
当前在线:1825今日阅读:2今日分享:38

java-des数据加密

des是数据加密一种算法,有3个参数:key,data,模式。key:是8个字节64位,data:是加密的数据,加密文件不太大,否者截取或者错误,模式:是加密和解密。下面在java中怎么使用des文本加密,我写的经验对你学习java有帮助的话,给我投票、点赞或者收藏!http://v.youku.com/v_show/id_XMzk3OTM0OTg3Ng==.html1java sha单向加密1java-md5加密口令1java base⑥④编码和图片对象相互转换
工具/原料

netbeans8.1

方法/步骤
1

新建一个java项目,项目的名称为javades。

2

打开这个javades文件,在其中定义一个静态方法getkey,把des算法的key的8的字节生成。 private static SecretKey getkey(byte[] key){        try {            DESKeySpec ks=new DESKeySpec(key);            SecretKeyFactory  kf=SecretKeyFactory.getInstance('des');            SecretKey sk=kf.generateSecret(ks);            return sk;        } catch (InvalidKeyException | InvalidKeySpecException | NoSuchAlgorithmException ex) {            Logger.getLogger(Javades.class.getName()).log(Level.SEVERE, null, ex);        }                return null;    }

3

定义一个解密方法: private static byte[] decrypt(byte[]data,String key){                try {            SecretKey sk=getkey(key.getBytes());            Cipher ch=Cipher.getInstance('des');            ch.init(Cipher.DECRYPT_MODE, sk);            return ch.doFinal(data);        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException ex) {            Logger.getLogger(Javades.class.getName()).log(Level.SEVERE, null, ex);        }                return null;    }

4

定义加密方法:    try {            SecretKey sk=getkey(key.getBytes());            Cipher ch = Cipher.getInstance('des');            ch.init(Cipher.ENCRYPT_MODE, sk);            return ch.doFinal(data);        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException ex) {            Logger.getLogger(Javades.class.getName()).log(Level.SEVERE, null, ex);        }                   return null;    }

5

在main方法中加密一个字符串和解密一个字符串: String key='12345678';       String data='abc123456890';       System.err.println('data:'+data);       byte[] jmdata=Javades.encrypt(data.getBytes(), key);       System.err.println(Arrays.toString(jmdata));       jm=Javades.decrypt(jm, pw);       System.err.println(new String(jm));

6

运行项目,结果把字符串des加密,还原字符串成功。

7

这个在对文件加密:String key='12345678';        try {             File fi=new File('c:/data.txt');            InputStream input = new FileInputStream(fi);               byte[] data = new byte[input.available()];            input.read(data);            System.err.println('data:'+data);             byte[] jmdata=Javades.encrypt(data, key);            System.err.println('加密数据:'+Arrays.toString(jmdata));            byte[] jmjm=Javades.decrypt(jmdata, key);            System.err.println('解密数据:'+new String(jmjm,'UTF-8'));        } catch (FileNotFoundException ex) {            Logger.getLogger(Javades.class.getName()).log(Level.SEVERE, null, ex);        } catch (IOException ex) {            Logger.getLogger(Javades.class.getName()).log(Level.SEVERE, null, ex);        }

8

运行项目,对文件byte[]的数据加密和解密成功。

推荐信息