c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法源代码

c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法源代码

在c#中实现常用的加密算法可以使用System.Security.Cryptography命名空间。

MD5哈希算法

以下是使用MD5哈希算法的c#代码示例:

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

public string GetMd5(string input)
{
    using (MD5 md5Hash = MD5.Create())
    {
        byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
        StringBuilder builder = new StringBuilder();

        for (int i = 0; i < data.Length; i++)
        {
            builder.Append(data[i].ToString("x2"));
        }

        return builder.ToString();
    }
}

在这个示例中,我们创建了一个MD5哈希对象,然后将输入字符串转换为字节数组,使用ComputeHash方法将输入转换为哈希值,最后将哈希值转换为16进制字符串返回。

SHA1哈希算法

以下是使用SHA1哈希算法的c#代码示例:

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

public string GetSha1(string input)
{
    using (SHA1 sha1Hash = SHA1.Create())
    {
        byte[] data = sha1Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
        StringBuilder builder = new StringBuilder();

        for (int i = 0; i < data.Length; i++)
        {
            builder.Append(data[i].ToString("x2"));
        }

        return builder.ToString();
    }
}

如您所见,与MD5哈希算法类似,使用SHA1哈希算法的过程相似,唯一的不同之处是我们创建了SHA1哈希对象。

SHA256和SHA512哈希算法

使用SHA256和SHA512哈希算法的过程与SHA1和MD5哈希算法相似,唯一的不同之处是我们创建了SHA256或SHA512哈希对象。

以下是使用SHA256哈希算法的c#代码示例:

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

public string GetSha256(string input)
{
    using (SHA256 sha256Hash = SHA256.Create())
    {
        byte[] data = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
        StringBuilder builder = new StringBuilder();

        for (int i = 0; i < data.Length; i++)
        {
            builder.Append(data[i].ToString("x2"));
        }

        return builder.ToString();
    }
}

以下是使用SHA512哈希算法的c#代码示例:

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

public string GetSha512(string input)
{
    using (SHA512 sha512Hash = SHA512.Create())
    {
        byte[] data = sha512Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
        StringBuilder builder = new StringBuilder();

        for (int i = 0; i < data.Length; i++)
        {
            builder.Append(data[i].ToString("x2"));
        }

        return builder.ToString();
    }
}

总结

在这篇文档中,我们讲解了如何在c#中实现MD5、SHA1、SHA256和SHA512哈希算法。这些算法是我们在开发中常用的加密算法,可以用于密码存储、数据完整性验证和消息认证等方面。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法源代码 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 分享WCF聊天程序–WCFChat实现代码

    WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的框架。WCF可以用于实现各种功能,包括聊天程序。本文将介绍如何使用WCF实现聊天程序,并分享一个名为WCFChat的示例项目。 WCFChat项目介绍 WCFChat是一个使用WCF实现聊天程序的示例项目。该项目包括两个应用程序:WCFChat.Serve…

    C# 2023年5月15日
    00
  • C#多线程编程中的锁系统(三)

    当多个线程同时访问共享资源时,可能会导致数据的不一致性,从而影响程序的正确性和稳定性。为了解决这个问题,我们可以使用锁系统来保证共享资源在同一时刻只能被一个线程访问和修改。 在C#多线程编程中,锁系统通常使用lock关键字来实现。下面是使用lock关键字来实现的示例代码: public class Counter { private static objec…

    C# 2023年6月7日
    00
  • ASP.NET Core的日志系统介绍

    ASP.NET Core的日志系统介绍 在本攻略中,我们将详细讲解ASP.NET Core的日志系统,并提供两个示例说明。 日志系统简介 ASP.NET Core的日志系统是一个灵活、可扩展的日志框架,可以记录应用程序的运行状态和错误信息。它支持多种日志提供程序,包括控制台、文件、数据库等,可以根据应用程序的需求进行配置和扩展。 日志系统的使用 在ASP.N…

    C# 2023年5月16日
    00
  • C#使用ADO.Net部件来访问Access数据库的方法

    访问Access数据库是C#开发中常见的一个需求,使用ADO.NET部件可以十分方便地实现这个功能。以下是完整的攻略,包含了从连接Access数据库到对数据库进行增删改查的操作。 连接Access数据库 在C#中连接Access数据库,需要使用OleDbConnection对象。OleDbConnection对象可以通过传入连接字符串来创建,连接字符串中需要…

    C# 2023年6月2日
    00
  • C#访问PostGreSQL数据库的方法

    C#访问PostgreSQL数据库的方法 PostgreSQL是一种高度可扩展的对象关系型数据库管理系统(ORDBMS),具有丰富的特性、高度的稳定性和性能。 在C#中与PostgreSQL进行交互需要使用到Npgsql这个第三方库。以下是详细步骤: 1. 安装Npgsql 使用NuGet包管理器,搜索Npgsql并安装。 2. 连接数据库 使用Npgsql…

    C# 2023年5月15日
    00
  • C#如何给枚举类型增加一个描述特性详解

    C#可以通过给枚举类型增加描述特性(Description Attribute),为每个枚举成员添加对应的文字说明,方便代码的阅读和维护。 实现的步骤如下: 1. 定义枚举类型 首先需要定义一个枚举类型,以示例说明为例: public enum Gender { [Description("未知")] Unknown = 0, [Desc…

    C# 2023年6月1日
    00
  • Oracle中的序列SEQUENCE详解

    Oracle中的序列SEQUENCE详解 简介 在Oracle数据库中,SEQUENCE是一种对象,可以用于生成唯一的数字序列。典型的用法包括生成主键ID,但它还可以用于其他用途,如生成订单号、交易号等。 一个SEQUENCE对象由三个主要的元素组成: 序列名:是用于标识该序列的名称,在创建SEQUENCE对象时必须指定该属性; 起始值:是该序列生成数字的初…

    C# 2023年5月15日
    00
  • Entity Framework代码优先(Code First)模式

    下面是Entity Framework代码优先(Code First)模式的完整攻略,包括定义数据模型、创建数据库、数据存取操作等内容。 什么是代码优先(Code First)模式 Entity Framework是微软推出的一个ORM(对象关系映射)框架,用于简化应用程序与数据库之间的访问。Entity Framework有三种模式:数据库优先(DataB…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部