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日

相关文章

  • C#实现Stripe支付的方法实践

    C#实现Stripe支付的方法实践 本篇攻略将介绍如何使用C#实现Stripe支付。首先需要注册并获得Stripe API的key,接着进行以下几个步骤: 步骤一:添加Stripe API及其他依赖关系的NuGet软件包 打开Visual Studio,创建一个新项目。在项目中添加Stripe API及其他依赖关系的NuGet软件包,可通过NuGet管理器进…

    C# 2023年6月1日
    00
  • C# 泛型的简单理解(安全、集合、方法、约束、继承)分享

    下面我来详细讲解一下 C# 泛型的相关知识。 什么是泛型 泛型是 C# 语言的一个重要特性,它能使你编写出更加灵活和可重用的代码。泛型和类、接口、委托和方法一样,是 C# 中的一种类型。它允许你定义一种类型,这种类型可以在使用时指定其具体的类型参数。这相当于抽象出了一种通用的类型,只有在具体使用时才会确定其具体类型。 泛型的优势 安全性:泛型能提供编译时类型…

    C# 2023年5月15日
    00
  • C#读写共享文件夹的方法

    下面是“C#读写共享文件夹的方法”的完整攻略: 1. 确认共享文件夹的路径 在进行共享文件夹的读写操作之前,需要先确认共享文件夹的路径是否正确。共享文件夹的路径包括计算机名称、共享文件夹名称和共享文件夹所在路径。例如,共享文件夹路径为 \\computer-name\shared-folder-name。 2. 访问共享文件夹 在 C# 代码中访问共享文件夹…

    C# 2023年6月1日
    00
  • JavaScript面向对象分层思维全面解析

    下面我将和您详细讲解“JavaScript面向对象分层思维全面解析”的完整攻略。 什么是JavaScript面向对象分层思维 JavaScript面向对象分层思维是一种针对JavaScript编程语言的面向对象设计模式。它将对象分为三个层次:业务层、数据层和界面层。每个层次都有自己独特的对象和属性。在JavaScript面向对象分层思维中,每个层次都是相互独…

    C# 2023年5月31日
    00
  • C#纯技术之Class写入Json

    Sure! 首先我们需要明确一下,使用C#将对象序列化为Json只需要两个步骤: 定义对象模型 序列化对象为Json 在这个过程中,我们使用到了C#语言自带的Json库 Newtonsoft.Json (也称为Json.Net)。 如果你还没有安装这个库,可以在NuGet中搜索这个名称,然后安装。 下面我将为你详细讲解如何使用这个库将一个C#类序列化为Jso…

    C# 2023年5月31日
    00
  • c# WPF中自定义加载时实现带动画效果的Form和FormItem

    针对“c# WPF中自定义加载时实现带动画效果的Form和FormItem”的实现攻略,以下是详细的讲解和步骤。 1. 实现思路 我们可以通过自定义WPF控件来实现带动画效果的Form和FormItem。在自定义控件的过程中,可以给控件添加动画效果来实现加载时的动态效果。 2. 实现步骤 2.1 自定义Form控件 首先,我们需要新建一个自定义Form控件,…

    C# 2023年6月3日
    00
  • C#生成随机验证码代码分享

    下面是关于C#生成随机验证码的完整攻略。 一、生成随机验证码的基本思路 要生成随机验证码,我们的基本思路是: 定义一个包含所有可能字符的字符串; 随机生成一组字符组合成随机字符串; 显示生成的随机字符串。 二、生成随机验证码的详细步骤 下面我们来详细讲解每一步实现的具体内容。 2.1 定义包含所有可能字符的字符串 我们可以定义一个字符串变量,包含所有可能作为…

    C# 2023年6月3日
    00
  • .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

    通过前面三篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus) 通过前面三篇文章的介绍,我们已经对.net co…

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