using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Security.Cryptography;
namespace BLL
{
public class md5Manger
{
#region MD5加密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="strSource">需要加密的字符串</param>
/// <returns>MD5加密后的字符串</returns>
public static string Md5Encrypt(string strSource)
{
//把字符串放到byte数组中
byte[] bytIn = System.Text.Encoding.Default.GetBytes(strSource);
//建立加密对象的密钥和偏移量
byte[] iv = { 102, 16, 93, 156, 78, 4, 218, 32 };//定义偏移量
byte[] key = { 55, 103, 246, 79, 36, 99, 167, 3 };//定义密钥
//实例DES加密类
DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider();
mobjCryptoService.Key = iv;
mobjCryptoService.IV = key;
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
//实例MemoryStream流加密密文件
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
return System.Convert.ToBase64String(ms.ToArray());
}
#endregion
#region MD5解密
/// <summary>
/// MD5解密
/// </summary>
/// <param name="Source">需要解密的字符串</param>
/// <returns>MD5解密后的字符串</returns>
public static string Md5Decrypt(string Source)
{
//将解密字符串转换成字节数组
byte[] bytIn = System.Convert.FromBase64String(Source);
//给出解密的密钥和偏移量,密钥和偏移量必须与加密时的密钥和偏移量相同
byte[] iv = { 102, 16, 93, 156, 78, 4, 218, 32 };//定义偏移量
byte[] key = { 55, 103, 246, 79, 36, 99, 167, 3 };//定义密钥
DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider();
mobjCryptoService.Key = iv;
mobjCryptoService.IV = key;
//实例流进行解密
System.IO.MemoryStream ms = new System.IO.MemoryStream(bytIn, 0, bytIn.Length);
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader strd = new StreamReader(cs, Encoding.Default);
return strd.ReadToEnd();
}
#endregion
}
}
分享到:
相关推荐
ASP.NET Core 使用 MD5 加密解密字符串 在 ASP.NET Core 中,使用 MD5 算法来加密和解密字符串是非常重要的一步。MD5(Message-Digest Algorithm 5)是一种常用的哈希算法,用于将任意长的数据转换为一个固定长度的...
本文将详细介绍MD5加密算法的工作原理、C#中的MD5实现以及如何进行加密解密操作。 MD5算法简介: MD5是由美国计算机科学家Ronald Rivest设计的一种强哈希函数,它将任意长度的输入(又叫做预映射)通过一系列的数学...
VB.NET中实现MD5加密,可以利用System.Security.Cryptography命名空间中的MD5类。以下是一段简单的MD5加密32位的例子: ```vb.net Imports System.Security.Cryptography Imports System.Text Public Function MD5...
而"DES加密解密"虽然与MD5不直接相关,但DES(Data Encryption Standard)也是一种常用的加密算法,可能会作为对比或者补充出现在文档中,介绍传统的对称加密技术。 总的来说,这个压缩包内容对于理解和使用MD5在...
### VB.NET 中两种方法实现 MD5 加密 #### 背景介绍 MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,能够将任意长度的信息压缩成一个固定长度(通常为128位)的散列值。在 VB.NET 开发中,MD5 常...
在PowerBuilder中,我们可以利用内置的函数或者自定义的函数来实现字符串的加密和解密。通常,加密过程涉及将明文字符串转换为不可读的形式,而解密则是将其恢复到原始状态。这里我们可能涉及到一些常见的加密算法,...
在ASP.NET中,MD5加密和解密是常见的安全实践,下面我们将深入探讨如何在ASP.NET中实现MD5加密和解密。 首先,理解MD5的基本概念。MD5算法生成的是一个128位的二进制数,通常以32位的十六进制字符串表示。由于MD5是...
本篇文章将深入探讨如何在MFC中实现字符串的加密和解密,以确保敏感数据的安全。 首先,我们需要理解加密的基本概念。加密是将明文数据转换为难以理解的形式,通常称为密文,目的是防止未经授权的访问。解密则是...
本篇文章将深入探讨C# ASP.NET中字符串加密解密的类和方法,以及如何在实际项目中应用它们。 首先,我们要了解加密的基本概念。加密是将明文(可读数据)转化为密文(不可读数据)的过程,而解密则是相反的过程。在...
在这个名为“ASP.NET源码——SHA1、MD5加密、解密、HTML字符串转换实例.zip”的压缩包中,包含了一些关于数据安全和字符串处理的关键实践。下面我们将详细探讨这些知识点。 首先,SHAI(通常写作SHA-1)是一种广泛...
在C#中,`System.Security.Cryptography`命名空间提供了对MD5加密解密的支持。首先,我们需要创建一个`MD5CryptoServiceProvider`实例来初始化MD5算法。以下是一个简单的MD5加密过程的步骤: 1. **初始化MD5对象**...
主要为大家详细介绍了.net core使用MD5加密解密字符串,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
文件名"SHAI、MD5加密、解密、HTML字符串转换实例_strmanage_aspx1"可能包含了一个关于MD5加密以及可能的解密操作的示例,HTML字符串转换可能涉及到如何将网页中的文本数据进行处理以便进行加密。具体的代码和实现...
### 基于C#开发语言的MD5加密解密方法 #### 一、MD5简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可生成一个128位(16字节)的散列值,通常用于确保数据的完整性。在网络安全领域,MD5...
下面我们将详细介绍如何在ASP.NET中实现MD5加密: 1. **导入System.Security.Cryptography命名空间**:首先,你需要在你的代码文件中导入这个命名空间,因为它包含了MD5类。 ```csharp using System.Security....
这段代码演示了如何在C#中使用MD5对字符串进行加密。 5. **MD5的局限性和安全性** - 由于MD5的碰撞易发性,即不同的输入可能产生相同的输出,因此MD5已不再被视为安全的加密手段,尤其不适合用于密码存储。对于...
在VB.NET中实现MD5加密,主要涉及到System.Security.Cryptography命名空间中的MD5类。以下是一个基本的MD5加密过程: 1. 引入命名空间: 首先,在你的VB.NET代码中,需要导入System.Security.Cryptography和System...
根据给定的文件信息,我们可以总结出以下关于“MD5加密解密”的相关知识点: ## MD5加密解密概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列算法,它可以将任意长度的数据转换成一个固定长度(通常为...