MD5和一个可逆加密算法相接合的加密和解密程序
比较简单。
[code={0}]
import java.security.MessageDigest;
/**
*先通过MD5加密之后,再来一次可逆的加密。
*顺序可以调整,可以选择先用可逆加密,然后再用MD5加密
*/
public class MD5andKL{
//MD5加码。32位
public static String MD5(String inStr) {
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
return "";
}
char[] charArray = inStr.toCharArray();
byte[] byteArray = new byte[charArray.length];
for (int i = 0; i < charArray.length; i++)
byteArray[i] = (byte) charArray[i];
byte[] md5Bytes = md5.digest(byteArray);
StringBuffer hexValue = new StringBuffer();
for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16)
hexValue.append("0");
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
}
//可逆的加密算法
public static String KL(String inStr){
//String s = new String(inStr);
char[] a = inStr.toCharArray();
for (int i = 0;i <a.length;i++) {
a[i] = (char)(a[i]^'t');
}
String s=new String(a);
return s;
}
//加密后解密
public static String JM(String inStr){
char[] a=inStr.toCharArray();
for (int i = 0;i <a.length;i++) {
a[i]= (char)(a[i]^'t');
}
String k=new String(a);
return k;
}
//测试主函数
public static void main (String args[]){
String s = new String("admin");
System.out.println("原始:"+s);
System.out.println("MD5后:"+MD5(s));
System.out.println("MD5后再加密:"+KL(MD5(s)));
System.out.println("解密为MD5后的:"+JM(KL(MD5(s))));
}
}
分享到:
相关推荐
本文将详细介绍一个基于C#实现的可逆加密解密算法,并对其原理及代码实现进行深入分析。 #### 二、基础知识 ##### 2.1 对称加密简介 对称加密是一种加密方式,它使用同一个密钥进行加密和解密。这种方式的优点在于...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要应用于数据的校验和与加密。在C#编程环境中,MD5被用于创建一个数据的数字指纹...然而,对于一般的数据校验和应用,MD5仍然是一个快速且实用的选择。
压缩包中的"Cryptfile"可能是指一个与加密文件相关的组件或工具,可能是实现文件加密解密的核心部分,比如包含了Delphi源码中的MD5加密函数或者其他加密算法。使用这样的组件,开发者可以更轻松地在自己的项目中集成...
java实现md5 加密解密(在网络中MD5是著名的不可逆算法,但是如果知道MD5的加密的字符串 则可以通过自己的加密算法对明文进行加密,对加密后的密文与字符串匹配; 匹配成功,表示找到明文;但是此程序的时间耗费较高!仅...
在IT领域,尤其是在软件开发与信息安全交叉的部分,加密技术扮演着至关...上述代码示例不仅展示了如何在C#中实现Rijndael算法的加密与解密功能,同时也提供了一个实用的框架,可供开发者根据具体需求进行调整和扩展。
在描述中提到的"MD5加密解密demo",实际上MD5并不具备可逆的加密特性。MD5是一个单向函数,即给定任意输入,可以很容易地计算出固定的输出(摘要),但无法根据输出反推出原始输入。因此,我们通常不会说"MD5解密",...
总结,C#中的MD5加密是一个简单的数据处理过程,用于生成数据的数字指纹。虽然MD5在数据完整性方面有一定的作用,但由于其安全性问题,不应再用于密码存储。开发者应当关注最新的加密标准和技术,以确保数据的安全。...
这个文件可能包含了实现AES加密解密功能的源代码、示例、文档或其他相关资源,帮助开发者在Qt5应用程序中集成AES加密。 **总结** AES加密算法是现代加密的标准之一,常用于保护数据的安全。在Qt5开发中,可以方便...
然而,MD5并不适用于对数据进行直接的加密和解密,因为它不是一种可逆的加密算法。但在某些情况下,可以结合其他加密算法,利用MD5生成的哈希值来辅助加密过程。 在Delphi中,我们可以使用第三方库如DCPCrypt或 ...
在描述中提到的是一个基于MD5的加密解密算法的源代码实例,这是一个控制台应用程序,这意味着我们可以直接在命令行界面运行它。这个程序可能包含了两个关键部分:加密和解密。加密部分会将输入的数据通过MD5算法转换...
在给定的`MD5Test`文件中,很可能包含了一个简单的Java程序,演示了如何使用MD5进行加密(实际上是生成哈希值)和验证的过程。这个程序可能会有以下几个部分: 1. 导入必要的库,如`java.security.MessageDigest`和`...
解密MD5并不是一个直接的过程,因为MD5是不可逆的。通常,我们使用MD5来验证数据的完整性和一致性,而不是解密。如果你需要在Android应用中存储用户密码,通常的做法是保存MD5哈希值,当用户输入密码时,再次计算其...
解密MD5通常不是一个直接的过程,因为MD5是单向哈希函数,设计为不可逆。然而,可以使用彩虹表或在线MD5解密服务尝试找到与给定MD5哈希相匹配的原始输入,但这并不保证能恢复原始数据,特别是对于随机或复杂的密码。...
程序通常会有一个主函数接收用户输入的文件名,然后读取文件内容,调用MD5计算函数,最后打印出计算得到的MD5摘要。 解密MD5的概念实际上存在误解,因为MD5是一种单向哈希函数,设计上是不可逆的。通常所说的"解密...
下面是一个使用示例,演示如何使用上述加密和解密算法: ```php $data = 'php 加密解密算法'; // 被加密信息 $key = '123'; // 密钥 $encrypt = encrypt($data, $key); $decrypt = decrypt($encrypt, $key); echo ...
MD5主要用作消息摘要,而RSA则是一种非对称加密算法,适用于数据加密和数字签名。 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它可以将任意长度的数据转化为固定长度的摘要信息。这个摘要具有不...
MD5、RSA和DES分别是散列函数、非对称加密算法和对称加密算法领域的经典代表。虽然这些算法随着时间的推移面临着不同程度的安全挑战,但它们仍然是信息安全领域的重要组成部分。理解这些算法的基本原理和技术细节...
以下是一个简单的ASP MD5加密示例: ```vbscript Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type = 1 '设置为二进制类型 objStream.LoadFromFile "path_to_your_file" '加载...
在C#中实现加密通常涉及到多种不同的加密算法和技术,包括但不限于可逆加密(如DES、AES)和不可逆加密(如MD5、SHA1)。这些加密方法各有特点和适用场景。 ### 不可逆加密——MD5 **MD5**(Message-Digest ...
尽管这个小程序没有明确指出具体使用了哪种加密算法,但可以肯定的是,它提供了一个实用的工具,让用户能够在需要的时候加密和解密数据,避免了MD5等不可逆加密方法导致的数据无法恢复的问题。在实际应用中,了解...