`
xia253964715
  • 浏览: 51176 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

MD5、3DES加密分享

    博客分类:
  • Java
阅读更多
Md5加密是不可编译的一种加密文件;而3DES是可加密,可解密的另一种加密文件。今天就这两种加密方面贴出点代码供大家参考,说实话,3DES的加密不是我自己写的,是我从网上找的,然后修改过的。具体谁的博客,真的很不好意思,我给忘了,再找就找不到了。
首先看一下Main方法
Main方法
package com.test;
/*  
* 当前文件:Test .java  
* 作者:王延侠  
*/

public class Test {

        public static void main(String[] args) {
                /*
                 * MD5加密
                 */
        String str = "my name is tomcat!";
       
       
                System.out.println("Md5加密以前"+str);
                System.out.println("Md5加密以后"+Md5.MD5(str));     
                /*
                 * 3DES加密
                 */
                TDES t = new TDES();
                t.getKey("Blowfish");//先得到密钥
                   System.out.println("3DES加密以前:"+str);
                System.out.println("3DES加密以后:"+t.getEncString(str));
                System.out.println("3DES解密以后:"+t.getDesString(t.getEncString(str)));
        }
}

3DES加密算法

package com.test;

/*  
* 当前文件:TDES.java  
* 作者:王延侠  
*/

import java.security.Key;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;

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

public class TDES{

Key key;

/**
* 根据参数生成KEY
*
* @param strKey
*/
public void getKey(String strKey) {
try {
KeyGenerator _generator = KeyGenerator.getInstance("DES");
_generator.init(new SecureRandom(strKey.getBytes()));
this.key = _generator.generateKey();
_generator = null;
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 加密String明文输入,String密文输出
*
* @param strMing
* @return
*/
public String getEncString(String strMing) {
byte[] byteMi = null;
byte[] byteMing = null;
String strMi = "";
BASE64Encoder base64en = new BASE64Encoder();
try {
byteMing = strMing.getBytes("UTF8");
byteMi = this.getEncCode(byteMing);
strMi = base64en.encode(byteMi);
} catch (Exception e) {
e.printStackTrace();
} finally {
base64en = null;
byteMing = null;
byteMi = null;
}
return strMi;
}

/**
* 解密 以String密文输入,String明文输出
*
* @param strMi
* @return
*/
public String getDesString(String strMi) {
BASE64Decoder base64De = new BASE64Decoder();
byte[] byteMing = null;
byte[] byteMi = null;
String strMing = "";
try {
byteMi = base64De.decodeBuffer(strMi);
byteMing = this.getDesCode(byteMi);
strMing = new String(byteMing, "UTF8");
} catch (Exception e) {
e.printStackTrace();
} finally {
base64De = null;
byteMing = null;
byteMi = null;
}
return strMing;
}

/**
* 加密以byte[]明文输入,byte[]密文输出
*
* @param byteS
* @return
*/
private byte[] getEncCode(byte[] byteS) {
byte[] byteFina = null;
Cipher cipher;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byteFina = cipher.doFinal(byteS);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}

/**
* 解密以byte[]密文输入,以byte[]明文输出
*
* @param byteD
* @return
*/
private byte[] getDesCode(byte[] byteD) {
Cipher cipher;
byte[] byteFina = null;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byteFina = cipher.doFinal(byteD);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;

}
}

MD5加密算法
package com.test;
/*  
* 当前文件:Md5 .java  
* 作者:王延侠  
*/
import java.security.MessageDigest;

public class Md5 {
public final static String MD5(String md5) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = md5.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
String dd = new String(str);
return dd;
} catch (Exception e) {
return null;
}
}
}
分享到:
评论

相关推荐

    MD5 3DES 双重加密 demo

    MD5和3DES都是在信息安全领域广泛使用的加密算法,它们各有不同的应用场景和安全特性。MD5主要用于数据完整性校验,而3DES则是一种对称加密算法,常用于保护数据的机密性。在这个"MD5 3DES 双重加密 demo"中,我们将...

    MD5和DES加密算法

    MD5加密和DES加密 博文链接:https://z2009zxiaolong.iteye.com/blog/1562197

    C#MD5,DES加密解密

    通过这些代码,你可以了解如何在C#中实现MD5和DES加密解密,并理解它们的基本工作原理。然而,为了提高安全性,应当考虑使用更现代的加密标准,如AES,以及更安全的哈希函数,例如SHA-256。在处理敏感数据时,确保...

    DES加密解密MD5加密

    在Windows Forms(Winform)环境中,我们可以创建一个简单的应用程序来实现DES加密和MD5加密的功能。DEncrypt.cs.txt和DEncrypt.Designer.cs是C#项目中的两个文件,其中DEncrypt.cs是主要的代码文件,包含了加密解密...

    MD5 RAS DES 加密算法详解

    ### MD5 RAS DES 加密算法详解 #### MD5算法:信息安全的守护者 MD5,全称为Message-Digest Algorithm 5,是由MIT的计算机科学实验室与RSA Data Security Inc.共同研发的一种散列函数,其设计目的是为了保障信息的...

    MD5和DES加密解密小工具

    C#编写的MD5加密,DES加密解密的集成小工具,简单好用,80KB大小。

    Delphi加密代码(含MD5,DES等多种加密方式)

    本篇文章将详细讲解Delphi中涉及的加密技术,包括MD5散列和DES加密,以及可能存在的自定义加密算法。 首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的数据转化为固定长度的...

    crypto-js 对密码md5加密,DES加密

    ### crypto-js 库在前端开发中的应用:MD5与DES加密技术详解 #### 一、前言 在当今数字化时代,信息安全变得尤为重要。无论是保护用户的个人信息还是确保数据传输的安全性,加密技术都扮演着至关重要的角色。在...

    MD5字符串加密和DES加密

    `EncodeTest`可能是包含示例代码或程序的文件,通常这样的文件会提供如何在VC++环境中实现MD5和DES/3DES加密的示例。这个文件可能包含了类定义、函数实现以及如何使用这些函数的代码片段,通过这些代码,你可以学习...

    MD5加密,DES,RSA加解密工具

    MD5、DES和RSA是信息安全领域中常用的三种加密算法,每种都有其特定的应用场景和特点。 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转换为一个固定长度的摘要,通常为128...

    PB可用md5加密、des加解密,Base64编码DLL、附PB11.5调用例程

    标题中的“PB可用md5加密、des加解密,Base64编码DLL、附PB11.5调用例程”表明这是一个关于PowerBuilder(PB)应用的开发资源,其中包含使用MD5加密、DES(Data Encryption Standard)解密以及Base64编码的功能。...

    MD5加密,DES加密,自定义加密

    MD5加密、DES加密以及自定义加密是网络安全领域中常见的三种加密技术,它们在保护数据安全、验证信息完整性和提供用户认证等方面发挥着重要作用。在本文中,我们将深入探讨这三种加密方法及其在实际应用中的具体场景...

    ASP.NET的MD5和DES加密和解密算法

    ASP.NET的MD5和DES加密和解密算法 非常好的资源 欢迎大家参考

    跨平台 AES MD5 ECC DES RSA 加密解密 支持 进度 支持多种编码.源码.FlyUtils_md5加密解密工具类

    本文将详细介绍标题和描述中提到的几种加密算法:AES、MD5、ECC、DES以及RSA,并结合源码库"FlyUtils"探讨它们在跨平台环境下的应用,以及如何支持进度显示和多种编码。 首先,AES(Advanced Encryption Standard)...

    PB可用md5加密、des加解密DLL,附PB9调用例程

    本文将详细介绍如何使用PB(PowerBuilder)进行MD5加密和DES加解密操作,并结合提供的DLL文件和PowerBuilder 9.0的调用例程来深入理解这些概念。 首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数...

    常用MD5加密算法和3-DES加密算法java实现

    ### 常用MD5加密算法和3-DES加密算法Java实现 在现代软件开发过程中,数据的安全性变得越来越重要。对于数据传输和存储过程中的安全性保障,加密技术发挥着至关重要的作用。本文将详细介绍如何在Java环境中实现两种...

    MD5(DES) 8位密钥加密或解密文件function源代码

    Visual Studio .NET VB编程语言 MD5(DES) 8位密钥加密或解密文件function源代码 压缩包 : MD5 skey8位加密(文件).zip 列表 MD5 skey8位加密(文件)/ MD5 skey8位加密(文件)/bin/ MD5 skey8位加密(文件)/Form...

    pb用NetDiskDLL做的MD5加密、des加密解密、Base64编码解码(含pb9 Demo).zip

    pb用NetDiskDLL做的MD5加密、des加密解密、Base64编码解码(含pb9 Demo).zip pb用NetDiskDLL做的MD5加密、des加密解密、Base64编码解码(含pb9 Demo).zip pb用NetDiskDLL做的MD5加密、des加密解密、Base64编码解码...

    前端DES与MD5加密

    前端DES与MD5加密,采用CryptoJS v3.1.2

    java常用类-MD5加密与DES加密解密

    java中常用的工具类,用于MD5的加密,里面还有切割了MD5加密的长度,有DES加密与解密,并且配有main函数可测试,可以根据自己的实际情况使用main函数测试使用

Global site tag (gtag.js) - Google Analytics