当前位置:首页 > C# > 正文内容

c#md5与SHA1验证函数

admin10年前 (2015-12-02)C#5680
/// <summary>
        /// MD5验证函数
        /// </summary>
        /// <param name="fileName">文件的路径</param>
        /// <param name="blockletter">返回的MD5值是否为大写</param>
        /// <returns></returns>
        public static string GetMD5HashFromFile(string fileName,bool blockletter)
        {
            try
            {
                FileStream file = new FileStream(fileName, FileMode.Open);
                System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] retVal = md5.ComputeHash(file);
                file.Close();

                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < retVal.Length; i++)
                {
                    if (blockletter)
                        sb.Append(retVal[i].ToString("X2"));
                    else 
                        sb.Append(retVal[i].ToString("x2"));
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                return "文件读取错误";
            }
        }
        /// <summary>
        ///   计算SHA1值
        /// </summary>
        /// <param name="fileName">文件地址</param>
        /// <param name="blockletter">是否输出大写</param>
        /// <returns></returns>
        public static string GetSHA1HashFromFile(string fileName, bool blockletter)
        {
            var tragetFile = new System.IO.FileStream(fileName, System.IO.FileMode.Open);
            var sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider();
            byte[] hashbytes = sha1.ComputeHash(tragetFile);
            tragetFile.Close();

            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            for (int i = 0; i < hashbytes.Length; i++)
            {
                if (blockletter) //判断输出大小写
                    sb.Append(hashbytes[i].ToString("X2"));
                else
                    sb.Append(hashbytes[i].ToString("x2"));
            }
            return sb.ToString();
        }


扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:https://feelsight.cn/post/5.html

标签: C#md5SHA1

“c#md5与SHA1验证函数” 的相关文章

UDP穿透NAT的原理与实现(UDP“打洞”原理)

NAT(The IP Network Address Translator) 的概念和意义是什么?NAT, 中文翻译为网络地址转换。具体的详细信息可以访问RFC 1631 - http://www.faqs.org/rfcs/rfc1631.html, 这是对于NAT的定义和解释的最权威的...

基于C#的socket编程的TCP异步实现

基于C#的socket编程的TCP异步实现

一、摘要  本篇博文阐述基于TCP通信协议的异步实现。 二、实验平台  Visual Studio 2010 三、异步通信实现原理及常用方法3.1 建立连接   在同步模式中,在服务器上使用Accept方法接入连接请求,而在客户端则使用Connect方法来连接服务器。相对地,在异...

安装包制作工具 SetupFactory使用1 详解

安装包制作工具 SetupFactory使用1 详解

Setup Factory 是一个强大的安装程序制作工具。提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序。可建立快捷方式,也可直接在 Windows 系统的注册表加入内容,还能在 Win.ini 和 System.ini 内加入设定值,更可以建立反安装选...

c# 全局鼠标事件

1.Win32Api public class Win32Api { [StructLayout(LayoutKind.Sequential)] public class POINT { publi...

C#全局监听Windows键盘事件

1.工具类代码 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Windows...

c#程序闪退日志记录/异常日志

以下代码是程序入口文件 using DDS_Form1; using System; using System.Collections.Generic; using System.IO; //using System.Linq; using System.Windows.Forms;...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。