首页 > 编程语言 >C# MD5加密/解密方法

C# MD5加密/解密方法

时间:2023-11-28 16:58:29浏览次数:30  
标签:加密 C# System 解密 mobjCryptoService new MD5

using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace Assist
{
    public static class MD5Helper
    {
        #region MD5加密
        /// <summary>  
        /// MD5加密  
        /// </summary>  
        /// <param name="strSource">需要加密的字符串</param>  
        /// <returns>MD5加密后的字符串</returns>  
        //[OperationContract]
        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();

            string strOut = System.Convert.ToBase64String(ms.ToArray());
            return strOut;
        }
        #endregion

        #region MD5解密
        /// <summary>  
        /// MD5解密  
        /// </summary>  
        /// <param name="Source">需要解密的字符串</param>  
        /// <returns>MD5解密后的字符串</returns>  
        //[OperationContract]
        public static string Md5Decrypt(string Source)
        {
            if (Source == null) return string.Empty;
            //将解密字符串转换成字节数组  
            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 
    }
}

 

标签:加密,C#,System,解密,mobjCryptoService,new,MD5
From: https://www.cnblogs.com/jianxiaoxiu/p/17862361.html

相关文章

  • 【JDK+jenkins+gitee实现CI/CD(之一)】 阿里云ESC安装JDK与jenkins
    CI/CD就是持续交付持续集成的意思,以达到代码提交后就能自动构建、自动更新发布的目地,减少不必要的打包发布环节首先说明几点重要常识jenkins是使用java开发的,所以安装jenkins必须要有java环境,要有java环境得先安装JDK【注意jenkins的版本与JDK版本有关联】因为我们是在阿里云E......
  • cloudcompare不能打开移动硬盘的文件
    cloudcompare没有文件权限而已,ubuntusoftware-->cloudcompare-->permissions-->打开:Read/Writefilesonremovablestoragedevices命令:https://github.com/CloudCompare/CloudCompare/issues/778......
  • BMC管理命令--ipmitool
    1安装ipmitool软件:apt-getinstall-yipmitoolyuminstall-yipmitool2IPMItool常用命令:2.1BMC配置命令ipmitoollanprint1#打印当前ipmi地址配置信息。ipmitoollanset1ipsrcstatic#设置id1为静态IP地址。ipmitoollanset1ipaddr10.42.223.71......
  • 仅需三行代码! C# 快速实现PDF转PPT
    一般在会议、教学或培训活动中,我们都会选择PPT文档来进行内容展示。与PDF文档相比,PPT文档具有较强的可编辑性,可以随时增删元素,并且还可以设置丰富多样的动画效果来吸引观众注意。那么如何通过C#将PDF文档转为PPT文档呢?本文将教大家仅使用3行代码就实现这一功能。PDF转PPT所需工具......
  • 测试博客园VSCode插件 —— 欧陆战争4
    测试vscode插件上传随笔所有内容都是来自贴吧“欧陆战争4吧”此处为做笔记自用欧陆战争4吧兵种分类英系:大不列颠、瑞士。西系:西班牙、葡萄牙、丹麦。普系:普鲁士、梅克伦堡、奥尔登堡、拿骚、巴伐利亚、布伦瑞克、黑森、符腾堡、巴登、莱茵同盟。(注意萨克森并不是普系兵......
  • ChatGPT优秀开源仓库
    一、pandala项目仓库地址:pandora-nextdocker部署方案拉取镜像dockerpullpengzhile/pandora-next创建配置文件创建目录mkdir~/data~/sessions创建默认配置文件cd~/data/vimconfig.json{"bind":"0.0.0.0:8181","timeout":600,"p......
  • springcloud~spring-cloud-starter-alibaba-nacos-discovery-2021.0.1.0配置方式变更
    nacos的配置方式发生改变,之前的方式不再适用,我们需要进行调整包依赖pom.xml代码,引入基础pom依赖<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2021.0.1.0<</ve......
  • docker-compose种不通的服务之间的访问问题,夸容器访问
    背景我们知道对于docker的每个容器都是独立的,想要夸容器访问的话,不能用127.0.0.1加端口号去访问,所以需要docker虚拟网卡的网关分配的地址去访问,可以通过dockerinspect对每个容器的局域网ip进行查看,但是这样比较麻烦,所以有一个新的解决办法,就是通过docker-compose配置文件的方......
  • 国标GB28181安防监控平台EasyCVR周界入侵AI算法检测方案
    在城市管理和公共安全领域,安全视频监控的重要性日益凸显。AI视频智能分析平台基于深度学习和计算机视觉技术,利用AI入侵算法,能够实时、精准地监测周界入侵行为。TSINGSEE青犀在视频监控及AI视频智能分析领域拥有深厚的技术积累和丰富的实践经验。其中,AI视频智能分析系统/AI算法中......
  • 《Effective Java》阅读笔记-第二章
    EffectiveJava阅读笔记第二章创建和销毁对象第1条:用静态工厂方法代替构造器静态工厂方法优势:静态工厂方法有名称静态工厂方法可以详细的指定名称,而使用构造器时如果没有文档会难以区分不同构造器之间的区别。不必每次调用的时候创建一个新对象静态工厂方法可以缓......