JAVA-对称加密算法3DES

原创 2017年12月07日 21:29:17
一 为什么出现3DES
1、返回柯克霍夫原则
2、存在安全问题

二 3DES(Triple DES或DESede)好处
1、密钥长度增强
2、迭代次数提高

三 3DES相关参数

四 3DES代码实现
package com.imooc.security.des;

import java.security.Key;
import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;

import org.apache.commons.codec.binary.Base64;

public class Imooc3DES {
	
	private static String src = "cakin24 security 3des";

	public static void main(String[] args) {
		jdk3DES();
	}
	
	public static void jdk3DES() {
		try {
			//生成KEY
			KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");
			//keyGenerator.init(168);
			keyGenerator.init(new SecureRandom());//默认长度
			SecretKey secretKey = keyGenerator.generateKey();
			byte[] bytesKey = secretKey.getEncoded();
			
			//KEY转换
			DESedeKeySpec desedeKeySpec = new DESedeKeySpec(bytesKey);
			SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");
			Key convertSecretKey = factory.generateSecret(desedeKeySpec);
			
			//加密
			Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
			cipher.init(Cipher.ENCRYPT_MODE, convertSecretKey);
			byte[] result = cipher.doFinal(src.getBytes());
			System.out.println("jdk 3des encrypt : " + Base64.encodeBase64String(result));
			
			//解密
			cipher.init(Cipher.DECRYPT_MODE, convertSecretKey);
			result = cipher.doFinal(result);
			System.out.println("jdk 3des decrypt : " + new String(result));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

五 实现效果
jdk 3des encrypt : FJXYJjlRQW6+TJHr3SsQtmcvdPRI0sQK
jdk 3des decrypt : cakin24 security 3des


版权声明:本文为博主原创文章,未经博主允许不得转载。

浅谈3DES加密解密

当你使用网银时,是否担心你的银行卡会被盗用?     当你和朋友用QQ进行聊天时,是否担心你的隐私会被泄露?     作为开发者,编写安全的代码比编写优雅的代码更重要,因为安全是一切应用之根本!为...
  • u012398902
  • u012398902
  • 2016年07月08日 11:52
  • 1249

3DES加密算法简析

3DES加密算法并非什么新的加密算法,而是DES算法的另一种模式。是现在比较常用的一种对称加密算法,比起DES来说安全性更高。该算法的加解密过程分别是对明文/密文数据进行三次DES加密或解密,得到相应...
  • jimi_yuan
  • jimi_yuan
  • 2016年01月26日 22:51
  • 3906

python实现DES加密算法和3DES加密算法

pyDes.py ############################################################################# # ...
  • qianglee
  • qianglee
  • 2013年12月22日 11:18
  • 1192

实现使用3des在页面js加密,后台java解密

前段时间根据功能的需要,需在页面对用户提交的表单数据采用3des加密,然后提交到后台。之前在网上通过百度、谷歌搜索了很久,虽然找到了很多的资料,但是总有各种问题。要嘛是js加密后,后台不能解密,要嘛是...
  • Mr_Smile2014
  • Mr_Smile2014
  • 2015年12月04日 12:02
  • 5423

3DES 和 ECB CBC 加密方式

一、数据补位 DES数据加解密就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,按照需求补足8个字节(通常补00或者FF,根据实际要求不同)进行计算...
  • Season_hangzhou
  • Season_hangzhou
  • 2013年07月02日 21:03
  • 15981

对称密码之3DES

至于 3DES 为什么会出现呢?其实,这个不难想到。由于 DES 是一种非常简便的加密算法,但是密钥长度比较短,计算量比较小,相对来说,比较容易被破解。因此,在 DES 的基础上,使用三重数据加密算法...
  • zbw18297786698
  • zbw18297786698
  • 2016年12月12日 21:15
  • 385

DES/3DES加密,解密

〇、前言:         最近在项目中,涉及到与第三方厂家系统进行对接时,在参数传递过程中考虑到了数据的安全性,故双方采用3DES进行对传递参数的加解密,因此,进一步了解了下3DES的加解密算法,再...
  • xcbeyond
  • xcbeyond
  • 2016年08月07日 01:48
  • 2752

PHP使用3DES算法加密解密字符串

3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计...
  • loophome
  • loophome
  • 2016年07月21日 20:06
  • 7506

3DES+Base64 加密解密的方法

3DES+Base64 加密解密的方法 #import #import "GTMBase64.h"      // Open source,base64处理,就两个文件...
  • zhangmiaoping23
  • zhangmiaoping23
  • 2014年08月26日 11:26
  • 3623

3DES对称算法之双倍长密钥算法和三倍长密钥算法

一般我们用的3Des算法,大部分都是指双倍长密钥算法,最近在阅读某知名公司技术文档时发现,3DES算法还有一种三倍长密钥算法。 算法工具也侧面印证了这个说法: 那么这两个算法有什么区别...
  • LVXIANGAN
  • LVXIANGAN
  • 2017年05月19日 16:18
  • 2242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA-对称加密算法3DES
举报原因:
原因补充:

(最多只允许输入30个字)