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都是在信息安全领域广泛使用的加密算法,它们各有不同的应用场景和安全特性。MD5主要用于数据完整性校验,而3DES则是一种对称加密算法,常用于保护数据的机密性。在这个"MD5 3DES 双重加密 demo"中,我们将...
MD5加密和DES加密 博文链接:https://z2009zxiaolong.iteye.com/blog/1562197
通过这些代码,你可以了解如何在C#中实现MD5和DES加密解密,并理解它们的基本工作原理。然而,为了提高安全性,应当考虑使用更现代的加密标准,如AES,以及更安全的哈希函数,例如SHA-256。在处理敏感数据时,确保...
在Windows Forms(Winform)环境中,我们可以创建一个简单的应用程序来实现DES加密和MD5加密的功能。DEncrypt.cs.txt和DEncrypt.Designer.cs是C#项目中的两个文件,其中DEncrypt.cs是主要的代码文件,包含了加密解密...
### MD5 RAS DES 加密算法详解 #### MD5算法:信息安全的守护者 MD5,全称为Message-Digest Algorithm 5,是由MIT的计算机科学实验室与RSA Data Security Inc.共同研发的一种散列函数,其设计目的是为了保障信息的...
C#编写的MD5加密,DES加密解密的集成小工具,简单好用,80KB大小。
本篇文章将详细讲解Delphi中涉及的加密技术,包括MD5散列和DES加密,以及可能存在的自定义加密算法。 首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的数据转化为固定长度的...
### crypto-js 库在前端开发中的应用:MD5与DES加密技术详解 #### 一、前言 在当今数字化时代,信息安全变得尤为重要。无论是保护用户的个人信息还是确保数据传输的安全性,加密技术都扮演着至关重要的角色。在...
`EncodeTest`可能是包含示例代码或程序的文件,通常这样的文件会提供如何在VC++环境中实现MD5和DES/3DES加密的示例。这个文件可能包含了类定义、函数实现以及如何使用这些函数的代码片段,通过这些代码,你可以学习...
MD5、DES和RSA是信息安全领域中常用的三种加密算法,每种都有其特定的应用场景和特点。 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转换为一个固定长度的摘要,通常为128...
标题中的“PB可用md5加密、des加解密,Base64编码DLL、附PB11.5调用例程”表明这是一个关于PowerBuilder(PB)应用的开发资源,其中包含使用MD5加密、DES(Data Encryption Standard)解密以及Base64编码的功能。...
MD5加密、DES加密以及自定义加密是网络安全领域中常见的三种加密技术,它们在保护数据安全、验证信息完整性和提供用户认证等方面发挥着重要作用。在本文中,我们将深入探讨这三种加密方法及其在实际应用中的具体场景...
ASP.NET的MD5和DES加密和解密算法 非常好的资源 欢迎大家参考
本文将详细介绍标题和描述中提到的几种加密算法:AES、MD5、ECC、DES以及RSA,并结合源码库"FlyUtils"探讨它们在跨平台环境下的应用,以及如何支持进度显示和多种编码。 首先,AES(Advanced Encryption Standard)...
本文将详细介绍如何使用PB(PowerBuilder)进行MD5加密和DES加解密操作,并结合提供的DLL文件和PowerBuilder 9.0的调用例程来深入理解这些概念。 首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数...
### 常用MD5加密算法和3-DES加密算法Java实现 在现代软件开发过程中,数据的安全性变得越来越重要。对于数据传输和存储过程中的安全性保障,加密技术发挥着至关重要的作用。本文将详细介绍如何在Java环境中实现两种...
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编码解码...
前端DES与MD5加密,采用CryptoJS v3.1.2
java中常用的工具类,用于MD5的加密,里面还有切割了MD5加密的长度,有DES加密与解密,并且配有main函数可测试,可以根据自己的实际情况使用main函数测试使用