`

JAVA实现DES加解密实现详解

阅读更多

JAVA实现DES加密实现详解

DES加密介绍
       DES
是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES加密算法出自IBM的研究,后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力,24小时内即可被破解。     虽然如此,在某些简单应用中,我们还是可以使用DES加密算法,本文简单讲解DESJAVA实现
。注意:DES加密和解密过程中,密钥长度都必须是8的倍数

packageutil;

importjava.security.SecureRandom;
importjavax.crypto.spec.DESKeySpec;
importjavax.crypto.SecretKeyFactory;
importjavax.crypto.SecretKey;
importjavax.crypto.Cipher;
publicclassDES{
publicDES(){
}
//
测试
publicstaticvoidmain(Stringargs[]){
//
待加密内容
Stringstr="
测试内容";
//
密码,长度要是8的倍数
Stringpassword=

"9588028820109132570743325311898426347857298773549468758875018579537757772163084478873699447306034466200616411960574122434059469100235892702736860872901247123456";
byte[]result=DES.encrypt(str.getBytes(),password);
System.out.println("
加密后:"+newString(result));

//直接将如上内容解密
try{
byte[]decryResult=DES.decrypt(result,password);
System.out.println("
解密后:"+newString(decryResult));
}catch(Exceptione1){
e1.printStackTrace();
}

}

/**
*
加密
*@paramdatasourcebyte[]
*@parampasswordString
*@returnbyte[]
*/
publicstaticbyte[]encrypt(byte[]datasource,Stringpassword){
try{
SecureRandom random=new SecureRandom();
DESKeySpec desKey=new DESKeySpec(password.getBytes());
//
创建一个密匙工厂,然后用它把DESKeySpec转换成
SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("DES");
SecretKey securekey=keyFactory.generateSecret(desKey);
//Cipher
对象实际完成加密操作
Ciphercipher=Cipher.getInstance("DES");
//
用密匙初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE,securekey,random);
//
现在,获取数据并加密
//
正式执行加密操作
returncipher.doFinal(datasource);
}catch(Throwablee){
e.printStackTrace();
}
returnnull;
}
/**
*
解密
*@paramsrcbyte[]
*@parampasswordString
*@returnbyte[]
*@throwsException
*/
publicstaticbyte[]decrypt(byte[]src,Stringpassword)throwsException{
//DES
算法要求有一个可信任的随机数源
Secure Random random=newSecureRandom();
//
创建一个DESKeySpec对象
DESKeySpecdesKey=newDESKeySpec(password.getBytes());
//
创建一个密匙工厂
SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");
//
DESKeySpec对象转换成SecretKey对象
SecretKey securekey=keyFactory.generateSecret(desKey);
//Cipher
对象实际完成解密操作
Cipher cipher=Cipher.getInstance("DES");
//
用密匙初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE,securekey,random);
//
真正开始解密操作
returncipher.doFinal(src);
}
}

分类:加解密&算法

 

 

分享到:
评论

相关推荐

    Java实现DES加解密算法解析

    Java中的DES(Data Encryption Standard)加解密算法是一种基于对称密钥的加密技术,它在信息安全领域中曾经被广泛使用。...通过Java提供的API,我们可以轻松地实现DES和DESede的加解密,以满足不同的安全需求。

    3des加密解密

    ### 3DES加密解密详解 #### 一、概述 三重数据加密标准(Triple Data Encryption Standard,简称3DES)是一种基于DES(Data Encryption Standard)的加密算法,它通过使用两个或三个不同的密钥对数据进行三次加密...

    关于字符串加密解密 DES加密解密

    ### 字符串加密解密——DES加密解密详解 #### 一、概述 在现代信息技术领域,数据安全显得尤为重要。为了保护数据不被未授权访问或窃取,加密技术成为了必不可少的一部分。其中,**DES(Data Encryption Standard...

    java实现的des算法

    ### Java 实现 DES 加密解密算法详解 #### 一、引言 DES(Data Encryption Standard,数据加密标准)是一种广泛使用的对称加密算法。它最初由IBM开发,并于1977年被美国国家标准局采纳为官方加密标准。DES算法使用...

    CryptoJS v3.1.2+Java前后台加解密

    《CryptoJS v3.1.2与Java AES加解密技术详解》 在现代网络应用中,数据安全是至关重要的,特别是在传输过程中,确保数据不被未经授权的第三方窃取或篡改。为此,开发者通常会采用加密技术来保护敏感信息。本篇文章...

    js&java DES加密互通

    **JavaScript与Java DES加密互通详解** 在Web应用开发中,数据的安全传输是非常关键的一环,尤其是在涉及用户敏感信息时。JavaScript(JS)作为前端的主要脚本语言,而Java则广泛应用于后端服务,两者之间的数据...

    DES加密算法JAVA代码

    ### DES加密算法JAVA代码知识点详解 #### 一、概述 数据加密标准(Data Encryption Standard,简称DES)是一种广泛使用的对称密钥加密技术。在Java中实现DES加密解密功能通常涉及以下几个关键类:`javax.crypto....

    java处理常规加密解密

    ### Java处理常规加密解密详解 #### 一、引言 在现代软件开发中,数据安全变得越来越重要。Java作为一种广泛使用的编程语言,提供了多种工具和技术来实现数据的加密与解密。本文将深入探讨如何使用Java进行常规的...

    Java中的DES加密和解密

    2. **初始化Cipher对象**:使用`Cipher`类来完成加解密操作。需要指定加密或解密模式,并传入相应的密钥。 3. **执行加密/解密**:通过`Cipher`对象的`doFinal()`方法完成加密或解密操作。 #### 四、代码示例解析 ...

    j2me实现的des加密解密算法

    ### J2ME 实现的 DES 加密解密算法详解 #### 一、概述 DES(Data Encryption Standard,数据加密标准)是一种对称加密算法,它使用一个固定长度(通常是64位)的密钥来加密和解密数据。在本篇文章中,我们将深入...

    DES算法java实现

    ### DES算法Java实现详解 #### 一、概述 **标题**:“DES算法java实现” **描述**:“DES算法的java实现, 密码编码学的实验二” **标签**:“DES javas” 本文章详细介绍了一种利用Java语言实现的DES(Data ...

    java加密解密

    ### Java 加密与解密技术详解 #### 一、引言 在当今信息化时代,数据安全变得尤为重要。Java 作为一种广泛使用的编程语言,在处理敏感数据时提供了多种加密解密手段来确保信息安全。本文将深入探讨 Java 中实现加密...

    java字符串-用户名和密码-加密解密

    本示例通过Java实现了字符串的加密与解密功能,采用DES加密算法,提供了基本的加密解密功能及字符串与十六进制之间的转换。这种实现方式适用于简单的加密需求,但对于更复杂的安全场景,建议考虑使用更先进的加密...

    DES算法实现(含用户界面) java

    ### DES算法实现与Java用户界面开发详解 #### 一、DES算法概述 数据加密标准(Data Encryption Standard,简称DES)是一种对称密钥算法,由IBM公司开发,并于1977年被美国国家标准局(ANSI)采纳为数据加密标准。...

    3des cbc加密解密 base64 16进制输出

    **3DES CBC加密解密与Base64及16进制输出详解** 3DES,全称为Triple Data Encryption Algorithm,即三重数据加密算法,是一种基于DES(Data Encryption Standard)的加强版加密算法。DES是一种对称加密算法,而3DES...

    使用3DES-ECB 加解密算法对JSON数据进行加密

    密钥的安全存储和分发是关键,确保只有授权的第三方系统能获取并使用正确的密钥进行加解密。 5. **安全性和效率**:虽然3DES比单一的DES更安全,但它的计算复杂度较高,加密和解密速度相对较慢。对于大规模或实时的...

    java基于Des对称加密算法实现的加密与解密功能详解

    基于Des对称加密算法实现的Java加密与解密功能详解: 对称加密是加密和解密使用相同密钥的一种加密算法,其特点是加解密速度快,适用于大量数据的加密。DES(Data Encryption Standard)是最早被广泛使用的对称加密...

    java加密解密简单实现

    ### Java加密解密简单实现详解 #### 概述 本文主要介绍了Java环境下几种常见的加密解密算法,并通过示例代码展示了这些算法的具体实现过程。文章首先概述了加密解密的基本概念,随后深入探讨了几种典型算法,包括...

Global site tag (gtag.js) - Google Analytics