`

java对称加密(DES)

    博客分类:
  • Java
阅读更多
/**
 * DESHelper.java
 * cn.com.songjy.test
 *
 * Function: TODO 
 *
 *   ver     date      		author
 * ──────────────────────────────────
 *   		 2012-6-29 		songjianyong
 *
 * Copyright (c) 2012, TNT All Rights Reserved.
 */

package cn.com.songjy.test;

import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

/**
 * ClassName:DESHelper
 * 
 * @author songjianyong
 * @version 1.0
 * @since v1.0
 * @Date 2012-6-29 下午1:36:05
 */
public class DESHelper {

	/**
	 * @method main
	 * @param args
	 * @throws
	 * @since v1.0
	 */

	public static void main(String[] args) {

		try {
			// 明文
			String str = "mobile:13757352769|type:w|content:测试";
			// 密钥(客户拥有)
			String password = "01010101";
			String desc = DESHelper.DoDES(str, password, 0);
			System.out.println("密文:" + desc);
			// 解密
			str = DESHelper.DoDES(desc, password, 1);
			System.out.println("明文:" + str);
		} catch (Exception e1) {
			e1.printStackTrace();
		}

	}

	/**
	 * 
	 * @method DoDES
	 * @param data
	 *            需要加密解密的数据
	 * @param password
	 *            密钥 必须8位字节
	 * @param flag
	 *            加密解密标志 0:加密 ,1:解密
	 * @return
	 * @throws
	 * @since v1.0
	 */
	public static String DoDES(String data, String password, int flag) {
		try {
			SecureRandom random = new SecureRandom();
			DESKeySpec desKey = new DESKeySpec(password.getBytes());
			SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
			SecretKey securekey = keyFactory.generateSecret(desKey);
			Cipher cipher = Cipher.getInstance("DES");

			if (flag == 0) {
				BASE64Encoder base64encoder = new BASE64Encoder();
				cipher.init(Cipher.ENCRYPT_MODE, securekey, random);
				return base64encoder.encode(cipher.doFinal(data
						.getBytes("UTF-8")));
			} else {
				BASE64Decoder base64decoder = new BASE64Decoder();
				byte[] encodeByte = base64decoder.decodeBuffer(data);
				cipher.init(Cipher.DECRYPT_MODE, securekey, random);
				byte[] decoder = cipher.doFinal(encodeByte);
				return new String(decoder, "UTF-8");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

		return null;
	}
}


测试效果:

密文:r0N21ttXuQY3yAsf2S+5M16WSltXCx2B9U4e53su+Q08Ep5D1Wgcla1qiLT6N4M9
明文:mobile:13757352769|type:w|content:测试



引自:http://www.linuxidc.com/Linux/2011-04/34990.htm
分享到:
评论

相关推荐

    java实现DES对称加密

    本文将详细介绍如何使用Java语言实现DES对称加密,并讨论其在实际应用中的作用和注意事项。 DES是一种块密码,它将64位的数据块作为输入,通过一系列复杂的数学运算(包括置换和代替操作)将其转换为密文。虽然原始...

    Java利用DES私钥对称加密实例

    Java中的DES(Data Encryption Standard)是一种广泛使用的对称加密算法,它基于一个固定的密钥进行数据的加密和解密。这个实例将详细讲解如何在Java中实现DES私钥对称加密。私钥对称加密意味着加密和解密使用的是同...

    Java-Js双向Des对称加密Demo

    本示例"Java-Js双向Des对称加密Demo"提供了在Java和JavaScript两个平台间实现DES加密解密的互操作性。下面将详细阐述DES加密解密的核心原理、Java和JavaScript的实现细节以及如何在两者之间进行兼容。 DES是一种块...

    Java实现文件的RSA和DES加密

    1. 对称加密算法:对称加密算法用来对敏感数据等信息进行加密,常用的算法包括 DES、3DES、AES 等。 2. 非对称加密算法:非对称加密算法采用加密钥匙(公钥)和解密钥匙(私钥),常用的算法包括 RSA、DSA、ECC 等。...

    转 JAVA加密解密DES对称加密算法.doc

    转 JAVA加密解密DES对称加密算法.doc

    Java_加密解密之对称加密算法DES

    Java 加密解密之对称加密算法 DES Java 加密解密之对称加密算法 DES 是一种常用的对称加密算法,广泛应用于保护金融数据的安全中。它的全称是 Data Encryption Algorithm(DEA),最早由 IBM 开发,并曾拥有专利权...

    java编写的加密解密工具,有对称加密和非对称加密

    在Java中,常见的对称加密算法有DES(Data Encryption Standard)、3DES(Triple DES)、AES(Advanced Encryption Standard)等。例如,AES是一种广泛应用的块加密算法,支持128位、192位和256位的密钥长度,其加密...

    Java利用DES私钥对称加密实例源码整理

    本实例主要探讨如何在Java中利用DES私钥进行对称加密。 DES是一种块加密算法,它使用56位的密钥对64位的数据块进行加密。虽然DES现在被认为安全性较低,因为其密钥长度较短,容易被破解,但它仍然是学习加密原理和...

    DES对称加密算法Java实现

    DES算法为密码体制中的对称密码体制,是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。 这里以Java代码实现DES算法。

    对称加密算法DES(Java).rar

    对称加密算法DES(Java).rar可运行 对称加密算法DES(Java).rar可运行

    Java利用DES私钥对称加密代码实例.rar

    7. **代码实例**:在提供的压缩包文件"Java利用DES私钥对称加密代码实例"中,应该包含了具体的Java代码示例,这些示例通常会展示如何生成密钥、进行加密和解密的完整流程。你可以通过阅读和运行这些代码,更好地理解...

    java加密算法:Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法

    java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...

    Java 3des加密算法ECB模式

    Java 3des加密算法ECB模式,亲测完美通过。目前网上的大部分算法都通不过或者加进Base64之类的,还要不下载其它jar包。而代码使用时直接下载运行,无须配置和下载额外的jar包 ,只需换上自己的密钥和待加密的数据...

    对称加密适用java和net

    压缩包内的文件"DES.cs"很可能是一个.NET实现的DES加密类,而"QCDES.java"可能是Java实现的类,它们都可能是为了在两个平台上进行对称加密通信而设计的。 为了在Java和.NET之间实现跨平台的数据加密传输,你需要...

    常用加密算法的Java实现总结(二)——对称加密算法DES、3DES和AES.pdf

    对称加密算法包括了多种算法,本文主要介绍DES、3DES和AES这三种常见的对称加密算法,并对它们进行Java实现的总结。 首先,对称加密算法的一个关键优势在于其算法公开、计算量小、加密速度快、加密效率高,但它们也...

    java和javascript之间的DES加密解密

    Java和JavaScript之间的DES加密解密是...总结来说,Java和JavaScript之间的DES加密解密涉及了对称加密原理、密钥管理、跨平台的互操作以及安全实践。理解和掌握这些知识点对于进行安全的网络通信和数据保护至关重要。

    RSA非对称加密和DES对称加密代码示例

    其中,RSA非对称加密和DES对称加密是两种常见的加密算法。这篇文章将详细介绍这两种加密方法,并通过代码示例进行阐述。 **RSA非对称加密** RSA(Rivest-Shamir-Adleman)是非对称加密算法的代表,由Ron Rivest、...

    用delphi写的一个des的加密解密小程序,java写的des的一个类

    DES是一种广泛使用的对称加密算法,它在信息安全领域扮演着重要的角色。 DES是一种块密码,其工作原理是将明文数据分为64位的数据块,然后通过一系列复杂的数学运算(包括置换、异或等)进行加密和解密。原始的DES...

    Java密码学对称加密Demo

    下面是一个简单的Java对称加密示例,使用AES算法: ```java import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; import java.security.SecureRandom; ...

    Des.JAVA.rar_DES.java_DES加密_java DES 128bit_java des_加密解密

    DES是一种对称加密算法,使用56位的密钥对数据进行16轮的迭代操作,以达到保护信息安全的目的。128bit在这里指的是可能使用的密钥长度扩展,因为原始DES的密钥是56位,但通常会通过填充到128位来增强安全性。 描述...

Global site tag (gtag.js) - Google Analytics