基于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
- 基于java类库的3DES加密算法实现
- 基于java类库的DES加密算法实现
- 3des加密算法的Java实现
- 3des加密算法的Java实现
- DES加密算法的java实现
- 常用加密算法的Java实现总结(二) ——对称加密算法DES、3DES和AES
- 常用加密算法的Java实现总结(二) ——对称加密算法DES、3DES和AES
- 常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES
- 常用加密算法的Java实现总结(二) ——对称加密算法DES、3DES
- DES加密算法JAVA实现
- Java实现的 DES对称加密算法
- 基于Feistel网络的DES和3DES加密算法
- DES加密算法的实现
- DES加密算法的实现
- DES 加密算法的实现
- DES加密算法的实现
- DES加密算法的实现
- 3DES实现加密算法
- ImportError: No module named _tkinter, please install the python-tk package ubuntu运行tkinter错误
- 关于 自守数 的C语言算法
- python正则表达式
- 【Android】【Webview】WebView 简介
- 第二讲:index渲染指令.html
- 基于java类库的3DES加密算法实现
- 双向链表加数
- CentOS 6上使用C++调用Redis
- 【Unity&NGUI】为什么把NGUI的UI制作为预制体,再生成到新场景,UI无法正常在Game视图显示
- 关于ZJOI2017day2的感想 #1
- boot-factory模式
- 安卓漫漫路之BitmapFactory高效加载Bitmap.
- ios 类别和类扩展
- WIFI 模块上传服务器显示曲线