• 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();
            }
        }
    }
  • 相关阅读:
    递归神经网络(RNN)简介(转载)
    递归神经网络入门教程(转载)
    向量叉积的几何意义(转)
    向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读
    完全搞懂傅里叶变换和小波(6)――傅立叶级数展开之函数项级数的性质
    完全搞懂傅里叶变换和小波(5)——傅立叶级数展开之函数项级数的概念
    完全搞懂傅里叶变换和小波(4)——欧拉公式及其证明
    完全搞懂傅里叶变换和小波(3)——泰勒公式及其证明
    完全搞懂傅里叶变换和小波(2)——三个中值定理<转载>
    完全搞懂傅里叶变换和小波(1)——总纲<转载>
  • 原文地址:https://www.cnblogs.com/nieyulin123/p/3070374.html
Copyright © 2020-2023  润新知