软考程序员教程重点提炼之JAVA中3des加密算法

程序员 责任编辑:小狐狸 2016-08-12

添加老师微信

备考咨询

加我微信

摘要:下面是希赛软考学院为大家提供的软考程序员教程重点提炼之JAVA中3des加密算法,希望能帮助学友们。

       >>>>点击进入了解程序员培训视频

   >>>>点击进入了解程序员在线辅导

 >>>>点击进入了解程序员考试教材


       下面是希赛软考网为大家提供的软考程序员教程重点提炼之JAVA中3des加密算法,希望能帮助学友们。


       package test;

       import java.security.Key;

       import java.security.SecureRandom;

       import javax.crypto.Cipher;

       import javax.crypto.KeyGenerator;

       import sun.misc.BASE64Decoder;

       import sun.misc.BASE64Encoder;

       /**

       *

       *使用DES加密与解密,可对byte[],String类型进行加密与解密密文可使用String,byte[]存储.

       *

       *方法:void getKey(String strKey)从strKey的字条生成一个Key

       *

       *String getEncString(String strMing)对strMing进行加密,返回String密文String

       *getDesString(String strMi)对strMin进行解密,返回String明文

       *

       *byte[]getEncCode(byte[]byteS)byte[]型的加密byte[]getDesCode(byte[]

       *byteD)byte[]型的解密

       */

       public class ThreeDES{

       Key key;

       /**

       *根据参数生成KEY

       *

       * param strKey

       */

       public void getKey(String strKey){

       try{

       KeyGenerator _generator=KeyGenerator.getInstance("DES");

       _generator.init(new SecureRandom(strKey.getBytes()));

       this.key=_generator.generateKey();

       _generator=null;

       }catch(Exception e){

       e.printStackTrace();

       }

       }

       /**

       *加密String明文输入,String密文输出

       *

       * param strMing

       * return

       */

       public String getEncString(String strMing){

       byte[]byteMi=null;

       byte[]byteMing=null;

       String strMi="";

       BASE64Encoder base64en=new BASE64Encoder();

       try{

       byteMing=strMing.getBytes("UTF8");

       byteMi=this.getEncCode(byteMing);

       strMi=base64en.encode(byteMi);

       }catch(Exception e){

       e.printStackTrace();

       }finally{

       base64en=null;

       byteMing=null;

       byteMi=null;

       }

       return strMi;

       }

       /**

       *解密以String密文输入,String明文输出

       *

       * param strMi

       * return

       */

       public String getDesString(String strMi){

       BASE64Decoder base64De=new BASE64Decoder();

       byte[]byteMing=null;

       byte[]byteMi=null;

       String strMing="";

       try{

       byteMi=base64De.decodeBuffer(strMi);

       byteMing=this.getDesCode(byteMi);

       strMing=new String(byteMing,"UTF8");

       }catch(Exception e){

       e.printStackTrace();

       }finally{

       base64De=null;

       byteMing=null;

       byteMi=null;

       }

       return strMing;

       }

       /**

       *加密以byte[]明文输入,byte[]密文输出

       *

       * param byteS

       * return

       */

       private byte[]getEncCode(byte[]byteS){

       byte[]byteFina=null;

       Cipher cipher;

       try{

       cipher=Cipher.getInstance("DES");

       cipher.init(Cipher.ENCRYPT_MODE,key);

       byteFina=cipher.doFinal(byteS);

       }catch(Exception e){

       e.printStackTrace();

       }finally{

       cipher=null;

       }

       return byteFina;

       }

       /**

       *解密以byte[]密文输入,以byte[]明文输出

       *

       * param byteD

       * return

       */

       private byte[]getDesCode(byte[]byteD){

       Cipher cipher;

       byte[]byteFina=null;

       try{

       cipher=Cipher.getInstance("DES");

       cipher.init(Cipher.DECRYPT_MODE,key);

       byteFina=cipher.doFinal(byteD);

       }catch(Exception e){

       e.printStackTrace();

       }finally{

       cipher=null;

       }

       return byteFina;

       }

       public static void main(String[]args){

       ThreeDES des=new ThreeDES();//实例化一个对像

       des.getKey("fenglingcompany");//生成密匙

       String strEnc=des.getEncString("fengye666666666");//加密字符串,返回String的密文

       System.out.println(strEnc);

       String strDes=des.getDesString(strEnc);//把String类型的密文解密

       System.out.println(strDes);

       }

       }


       返回目录:软考程序员教程重点提炼之算法实例汇总


       希赛软考网拥有十四年软考培训经验希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程多样的培训方式包括在线辅导面授使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!