基于java类库的3DES加密算法实现

来源:互联网 发布:mac睡眠时间 编辑:程序博客网 时间:2024/06/06 20:33

别看3DES的代码很复杂,其实和DES代码一样,核心代码就那么几行

加密部分的核心Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, deskey);return cipher.doFinal(data);解密部分的核心Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE,deskey);return cipher.doFinal(data);

完整代码

package DES;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;public class ThreeDESUtil {   //key 根据实际情况对应的修改   private final byte[] keybyte="123456788765432112345678".getBytes(); //keybyte为加密密钥,长度为24字节   private static final String Algorithm = "DESede"; //定义 加密算法,可用 DES,DESede,Blowfish   private SecretKey deskey;   //生成密钥   public ThreeDESUtil(){       deskey = new SecretKeySpec(keybyte, Algorithm);   }   //加密   public byte[] encrypt(byte[] data){        try {            Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");            cipher.init(Cipher.ENCRYPT_MODE, deskey);            return cipher.doFinal(data);        } catch (Exception ex) {            //加密失败,打日志            ex.printStackTrace();        }         return null;   }   //解密   public byte[] decrypt(byte[] data){       try {            Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");            cipher.init(Cipher.DECRYPT_MODE,deskey);            return cipher.doFinal(data);        } catch (Exception ex) {            //解密失败,打日志            ex.printStackTrace();        }         return null;   }   public static void main(String[] args) throws Exception {       ThreeDESUtil des=new ThreeDESUtil();       String req ="cryptology";       String toreq  = toHexString(req);       System.err.println("十六进制报文=="+toreq);       byte[] srcData=req.toString().getBytes("utf-8");       byte[] encryptData=des.encrypt(srcData);       System.out.println("密文:");       if(encryptData!=null){           for(int i=0;i<encryptData.length;i++){               String hex=Integer.toHexString(encryptData[i]);               if(hex.length()>1)                System.out.print(hex.substring(hex.length()-2)+" ");               else                System.out.print("0"+hex+" ");           }       }       System.out.println("");       System.out.println("明文:"+req);   }   // 转化字符串为十六进制编码   public static String toHexString(String s) {       String str = "";       for (int i = 0; i < s.length(); i++) {           int ch = (int) s.charAt(i);           String s4 = Integer.toHexString(ch);           str = str + s4;       }       return str;   }}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 有人在qq群上骂我怎么办 qq群一直有人骚扰怎么办 苹果手机QQ图标不在桌面上怎么办 苹果手机长按不能删除怎么办 qq发的图片过期怎么办 九黎八卦在仓库怎么办 飞猪f2领了万豪银卡没住怎么办 机械键盘摁键冲突怎么办 玩游戏键盘没反应怎么办 玩枪战游戏头晕恶心怎么办 手机看视频不能横屏怎么办 苹果手机安全码忘记了怎么办 信用卡安全码忘记了怎么办 联想电脑管家阻止我安装软件怎么办 word恢复后打开乱码怎么办 苹果手机局域网也登陆不了怎么办 剑三账号冻结7天怎么办 荒野行动无缘无故被限制时间怎么办 电脑打游戏闪屏怎么办 微信下载出现数据包出错怎么办 安卓平板闪退怎么办 剑侠世界2出了1怎么办 苹果手机有木马病毒删除不了怎么办 苹果手机病毒了怎么办【解决方法】 苹果手机点击病毒链接怎么办 苹果手机有病毒啦怎么办 苹果7p反复重启怎么办 苹果手机屏幕触屏不灵怎么办 苹果手机屏翘起来了怎么办 苹果x手机触屏失灵怎么办 苹果7手机变成黑白屏怎么办 苹果手机屏不动了怎么办 苹果6老是卡屏怎么办 苹果x卡屏死机怎么办 苹果6死机卡屏怎么办 苹果手机主屏死机怎么办 苹果7手机卡屏死机怎么办 苹果6s卡死了怎么办 6s手机显示丢失锁定怎么办 酷比s9被root怎么办 垃圾清理把相片删除了怎么办