`

md5,sha1,sha256,sha512的加密算法

    博客分类:
  • C#
 
阅读更多

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

namespace Hash
{
    public class Hash
    {
        public Hash() { }

        public enum HashType : int
        {
            MD5,
            SHA1,
            SHA256,
            SHA512
        }

        public static string GetHash(string text, HashType hashType)
        {
            string hashString;
            switch (hashType)
            {
                case HashType.MD5: 
                    hashString = GetMD5(text); 
                    break;
                case HashType.SHA1: 
                    hashString = GetSHA1(text); 
                    break;
                case HashType.SHA256:
                    hashString = GetSHA256(text);
                    break;
                case HashType.SHA512:
                    hashString = GetSHA512(text);
                    break;
                default: 
                    hashString = "Invalid Hash Type"; 
                    break;
            }
            return hashString;
        }
        
        public static bool CheckHash(string original, string hashString, HashType hashType)
        {
            string originalHash = GetHash(original, hashType);
            return (originalHash == hashString);
        }

        private static string GetMD5(string text)
        {
            UnicodeEncoding UE = new UnicodeEncoding();
            byte[] hashValue;
            byte[] message = UE.GetBytes(text);

            MD5 hashString = new MD5CryptoServiceProvider();
            string hex = "";

            hashValue = hashString.ComputeHash(message);
            foreach (byte x in hashValue)
            {
                hex += String.Format("{0:x2}", x);
            }
            return hex;
        }

        private static string GetSHA1(string text)
        {
            UnicodeEncoding UE = new UnicodeEncoding();
            byte[] hashValue;
            byte[] message = UE.GetBytes(text);

            SHA1Managed hashString = new SHA1Managed();
            string hex = "";

            hashValue = hashString.ComputeHash(message);
            foreach (byte x in hashValue)
            {
                hex += String.Format("{0:x2}", x);
            }
            return hex;
        }

        private static string GetSHA256(string text)
        {
            UnicodeEncoding UE = new UnicodeEncoding();
            byte[] hashValue;
            byte[] message = UE.GetBytes(text);
            
            SHA256Managed hashString = new SHA256Managed();
            string hex = "";

            hashValue = hashString.ComputeHash(message);
            foreach (byte x in hashValue)
            {
                hex += String.Format("{0:x2}", x);
            }
            return hex;
        }

        private static string GetSHA512(string text)
        {
            UnicodeEncoding UE = new UnicodeEncoding();
            byte[] hashValue;
            byte[] message = UE.GetBytes(text);
            
            SHA512Managed hashString = new SHA512Managed();
            string hex = "";

            hashValue = hashString.ComputeHash(message);
            foreach (byte x in hashValue)
            {
                hex += String.Format("{0:x2}", x);
            }
            return hex;
        }
    }
}
 
分享到:
评论

相关推荐

    C#MD5,SHA1,SHA256,SHA512加密算法完整代码

    根据给定文件的信息,本文将深入探讨C#中MD5、SHA1、SHA256、SHA512这四种加密算法的实现方法,并通过具体的代码示例来展示如何使用这些算法进行数据加密。 ### 一、理解MD5、SHA1、SHA256、SHA512 #### 1. MD5 MD...

    c#_实现MD5_SHA1_SHA256_SHA512等常用加密算法

    本文将深入探讨如何使用C#实现四种常见的加密算法:MD5、SHA1、SHA256、SHA512,并通过示例代码来理解这些算法的具体应用。 ### MD5 (Message-Digest Algorithm 5) MD5是一种广泛使用的散列函数,它可以将任意长度...

    MD5 SHA1 SHA256 的C语言源码

    MD5(Message-Digest Algorithm 5)、SHA1(Secure Hash Algorithm 1)和SHA256(Secure Hash Algorithm 2,256位版本)是常见的哈希函数,用于生成固定长度的数字指纹,常用于数据完整性校验、密码存储等领域。...

    SHA256加密算法

    在VC++环境下,我们可以使用C++语言来实现SHA256加密算法,并结合MFC(Microsoft Foundation Classes)库来创建用户界面,提供更加便捷的操作。 SHA256的主要特点包括: 1. 安全性:SHA256算法被设计成对于任何给定...

    Vue-常用加密(MD5,DES,SHA256,BASE64,SHA1,RSA)

    常见的单向散列加密算法包括 MD5、SHA1、SHA256 等。 二、对称加密算法 对称加密算法采用单密钥加密,在数据传输过程中,发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方;接收...

    MD5、SHA1、SHA256以及SHA512加解密算法实现

    总之,MD5、SHA1、SHA256和SHA512是用于数据完整性验证和安全认证的哈希函数,它们通过特定的算法将数据转化为固定长度的摘要。C语言实现这些算法时,需要理解和掌握哈希函数的工作原理,并考虑跨平台兼容性和效率...

    Qt加密算法md5,sha256,sha1

    ## 说明 此程序可以进行sha1,sha256,md5的加密 在input输入框内输入所需加密的数据,然后点击"encryption"按扭即可实现加密; 默认input输入框内的数据为123456

    SHA常用算法实现(SHA-1, SHA256, SHA384, SHA512)

    SHA系列散列函数是信息安全领域广泛应用的一组加密算法,它们被设计用于数字签名、数据完整性校验等场景。本文将详细介绍SHA-1、SHA-256、SHA-384以及SHA-512这四种算法,并结合C语言实现进行讲解。 1. SHA-1算法:...

    ASP实现MD5,SHA1,SHA256加密算法

    在这个主题中,我们将深入探讨如何在ASP中实现MD5、SHA1和SHA256这三种常见的哈希加密算法。 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它将任意长度的输入转换为固定长度的128位(16字节)的...

    java md5 sha1 sha256 sha384 sha 512加密算法

    JAVA 加密算法

    三种哈希算法的函数: sha256 md5 sha1

    在这个主题中,我们主要关注三种哈希算法:SHA256、MD5和SHA1。这些算法都是将任意长度的数据转换为固定长度的摘要,具有单向性和抗碰撞性。 1. **MD5(Message-Digest Algorithm 5)** - **简介**:MD5由Ronald ...

    sha1withrsa算法 华为sha256withrsa算法

    标题中的“sha1withrsa”和“华为sha256withrsa”算法是两种常见的公钥加密算法在数字签名过程中的应用。这两种算法都属于非对称加密算法的一部分,广泛用于确保数据完整性和认证发送者身份。在此,我们主要探讨它们...

    SHA256、MD5哈希算法实现

    在本文中,我们将探讨两种常见的哈希算法:SHA256和MD5。 首先,MD5(Message-Digest Algorithm 5)是由Ron Rivest在1991年设计的,它生成一个128位(16字节)的哈希值。MD5曾被广泛用于数据校验和密码存储,但由于...

    加密算法的 js 实现 md4 md5 sha-1

    加密算法的 js 实现 md4 md5 sha-1 加密算法的 js 实现 md4 md5 sha-1 加密算法的 js 实现 md4 md5 sha-1 加密算法的 js 实现 md4 md5 sha-1

    C#实现字符串SHA-256加密算法

    在C#编程环境中,实现SHA-256加密算法可以为应用程序提供强大的安全保障。 首先,我们需要理解SHA-256的工作原理。SHA-256是SHA-2家族的一员,它通过一系列复杂的数学运算(如位操作、异或、旋转等)将输入信息...

    C语言 3DES、AES、RC6、TEA、RSA、MD5、SHA1、SHA256加密源码

    1. **3DES(Triple DES)**:3DES是一种对称加密算法,基于DES(Data Encryption Standard)进行改进。它通过三次迭代应用DES密钥,提高了安全性。3DES通常用于保护敏感数据,如金融交易。 2. **AES(Advanced ...

    加密算法SHA512 字节C++实现

    本文将深入探讨SHA512加密算法的原理、C++实现以及其在实际应用中的重要性。 SHA512算法基于密码学中的消息摘要思想,通过一系列复杂的数学运算(如位操作、异或、循环左移等),将输入数据转化为一个512位的二进制...

    SHA-256加密算法JAVA

    在Java中实现SHA-256加密算法,可以使用内置的`java.security.MessageDigest`类。这个过程涉及到几个关键步骤,包括创建`MessageDigest`实例、更新输入数据和获取哈希值。 首先,我们需要导入必要的Java库: ```...

    js实现SHA1和MD5加密

    3. SHA1和MD5已不再被视为安全的哈希算法,建议使用SHA-256或更高级别的哈希算法。 4. JavaScript中的加密操作应尽可能在服务器端进行,以减少敏感信息暴露的风险。 在提供的"js实现SHA1和MD5加密.txt"文件中,可能...

    C++实现对数据的SHA-256加密算法

    在C++中实现SHA-256加密算法,我们需要了解其基本原理、步骤以及如何在代码中实现。 SHA-256算法的基本流程包括以下步骤: 1. **初始化哈希值**:首先,我们需要设置一组初始的哈希值,这些是固定的常量,由SHA-...

Global site tag (gtag.js) - Google Analytics