• MD5


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;
    namespace _01字符串Md5计算与文件Md5计算
    {
        class Program
        {
            static void Main(string[] args)
            {
                #region 计算字符串的Md5值
                //while (true)
                //{
                //    Console.WriteLine("请输入一个字符串:");
                //    string msg = Console.ReadLine();
                //    string md5Str = Md5EncryptFromString(msg);
                //    Console.WriteLine(md5Str);
                //}
                #endregion
                #region 计算文件的Md5值
                //while (true)
                //{
                //    Console.WriteLine("请输入文件路径:");
                //    string path = Console.ReadLine();
                //    string md5File = Md5EncryptFromFile(path);
                //    Console.WriteLine(md5File);
                //}
                #endregion
                //using (MD5 md5 = MD5.Create())
                //{
                //}
                //MD5 md5 = MD5.Create();
                //md5.Dispose
                //FileStream fs;
                //fs.Dispose(
            }
            /// <summary>
            /// 根据文件路径,计算文件的Md5值。
            /// </summary>
            /// <param name="path"></param>
            /// <returns></returns>
            private static string Md5FromFile(string path)
            {
                //1.创建Md5对象
                MD5 md5 = MD5.Create();
                using (FileStream fs = File.OpenRead(path))
                {
                    byte[] byts = md5.ComputeHash(fs);
                    md5.Clear();
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < byts.Length; i++)
                    {
                        sb.Append(byts[i].ToString("x2"));
                    }
                    return sb.ToString();
                }
            }
            /// <summary>
            /// 计算字符串的Md5值
            /// </summary>
            /// <param name="msg"></param>
            /// <returns></returns>
            static string Md5FromString(string msg)
            {
                //创建了一个计算Md5值的对象
                MD5 md5 = MD5.Create();
                //先计算出msg字符串的byte数组
                //把字符串msg,根据utf-8编码,计算出byte[]
                //对于包含中文的字符串,计算字符串时如果采用不同的编码,比如utf-8或gb2312,所以计算出来的byte[]不同,进而通过ComputeHash(byte[])计算出的md5值也不同,所以建议大家计算md5值时都采用统一的编码,utf-8.
                byte[] byts = System.Text.Encoding.UTF8.GetBytes(msg);
                #region 1
                //根据byte[]数组,还原原来的字符串
                //string msg1=System.Text.Encoding.UTF8.GetString(byts);
                #endregion
                //开始计算Md5值。
                byte[] md5Byts = md5.ComputeHash(byts);
                //释放资源
                md5.Clear();
                //获取字符串
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < md5Byts.Length; i++)
                {
                    sb.Append(md5Byts[i].ToString("x2"));
                }
                return sb.ToString();
            }
        }
    }
  • 相关阅读:
    周报说明8-4
    周报7-28
    日志-maven-c监控 周报7-21
    证明创建runnable实例和普通类时间一样长, 其实吧
    UE4开始之路
    js简单框架设计
    json中key为数字会自动排序问题
    u3动画
    工厂模式
    单例模式
  • 原文地址:https://www.cnblogs.com/nieyulin123/p/3070374.html
Copyright © 2020-2023  润新知