博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java DES加密和解密简单总结
阅读量:2058 次
发布时间:2019-04-29

本文共 1259 字,大约阅读时间需要 4 分钟。

DES常用加密模式:

  • ECB模式:电子密本方式
  • CBC模式:密文分组链接方式

DES加密填充模式:

  • NoPadding:算法本身不填充,
  • PKCS5Padding:Java和C#默认的填充模式,对加密数据字节长度对8取余为r,如r大于0,则补8-r个字节,字节为8-r的值;如果r等于0,则补8个字节8
  • ISO10126Padding

Java代码的实现

  • DES加密
//此处的key只能是长度为8的字符串,否则会出现异常public byte[] DESEncrype(byte[] data, String key) throws Exception {    byte[] keyArr = key.getBytes();    DESKeySpec desKey = new DESKeySpec(keyArr);    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");    SecretKey secureKey = keyFactory.generateSecret(desKey);    Cipher cipher = Cipher.getInstance("DES/CBC/ISO10126Padding");    //DES算法要求有一个可信任的随机数源,此处使用new IvParameterSpec(keyArr)    //尽量不要使用SecureRandom random = new SecureRandom(),因为可能导致跨语言无法正确解密    cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(keyArr));    return cipher.doFinal(data);}
  • DES解密
public static byte[] DESDecrypt(byte[] src, String key) throws Exception {    byte[] keyArr = key.getBytes();    DESKeySpec desKey = new DESKeySpec(keyArr);    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");    SecretKey secureKey = keyFactory.generateSecret(desKey);    Cipher cipher = Cipher.getInstance("DES/CBC/ISO10126Padding");    cipher.init(Cipher.DECRYPT_MODE, secureKey, new IvParameterSpec(keyArr));    return cipher.doFinal(src);}

转载地址:http://mvtlf.baihongyu.com/

你可能感兴趣的文章
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>
(PAT 1154) Vertex Coloring (图的广度优先遍历)
查看>>
(PAT 1115) Counting Nodes in a BST (二叉查找树-统计指定层元素个数)
查看>>
(PAT 1143) Lowest Common Ancestor (二叉查找树的LCA)
查看>>
(PAT 1061) Dating (字符串处理)
查看>>
(PAT 1118) Birds in Forest (并查集)
查看>>
数据结构 拓扑排序
查看>>
(PAT 1040) Longest Symmetric String (DP-最长回文子串)
查看>>