C#中MD5加密(MD5字符串加密和MD5流加密)

 1.MD5字符串加密:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;

namespace CaterCommon
{
    public partial class Md5Helper
    {
        /// <summary>
        /// MD5 加密
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string EncryptString(string str)
        {
            //utf8,x2:十六进制表示,占两位
            //创建对象方法:构造方法,静态方法(工厂模式)
            MD5 md5 = MD5.Create();
            //将字符串转换为字节数组
            byte[] byte0ld = Encoding.UTF8.GetBytes(str);
            //调用加密方法
            byte[] byteNew = md5.ComputeHash(byte0ld);
            //将加密结果进行转换成字符串
            StringBuilder sb = new StringBuilder();
            foreach(byte b in byteNew)
            {
                //将字符转换成十六进制表示的字符串,并且恒占用两位
                sb.Append(b.ToString("x2"));
            }
            //返回加密字符串
            return sb.ToString();
        }
    }
}

2.MD5流加密

首先介绍下string转换为Stream以及Stream转换为string的方法

static   void  Main(  string [] args )
        {            
            string  str  =   " 123456" ;   //字符串                     
            byte [] array  =  Encoding.ASCII.GetBytes(str);  //字符串转换为byte类型          
            MemoryStream stream  =   new  MemoryStream(array); //转换为Stream        
            StreamReader reader  =   new  StreamReader(stream);
            string  text  =  reader.ReadToEnd(); //转换为string
            Console.WriteLine(text); 
            Console.ReadLine(); 
       }  

MD5流加密为:

                /// <summary>
		/// MD5流加密
		/// </summary>
		/// <param name="inputStream"></param>
		/// <returns></returns>
		public static string GenerateMD5(Stream inputStream)
		{
			using (MD5 mi = MD5.Create())
			{
				//开始加密
				byte[] newBuffer = mi.ComputeHash(inputStream);
				StringBuilder sb = new StringBuilder();
				for (int i = 0; i < newBuffer.Length; i++)
				{
					sb.Append(newBuffer[i].ToString("x2"));
				}
				return sb.ToString();
			}
		}

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

博弈星宇

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者