哈希算法MD5和SHA1的C#实现

简介: /**//* * 哈希算法MD5和SHA1的C#实现 *  *  * 夏春涛 Email:xChuntao@163.com  * Blog:http://bluesky521.cnblogs.com * 运行环境:.net2.0 framework *//**//* * 关于哈希函数: *     哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。
/**/ /*
 * 哈希算法MD5和SHA1的C#实现
 * 
 * 
 * 夏春涛 Email:xChuntao@163.com 
 * Blog:
http://bluesky521.cnblogs.com
 * 运行环境:.net2.0 framework
 
*/


/**/ /*
 * 关于哈希函数:
 *     哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。
 * 加密哈希函数有这样一个属性:在计算上不大可能找到散列为相同的值的两个
 * 不同的输入;也就是说,两组数据的哈希值仅在对应的数据也匹配时才会匹配。
 * 数据的少量更改会在哈希值中产生不可预知的大量更改。
 * 
 * MD5 算法的哈希值大小为 128 位。
 * SHA1 算法的哈希值大小为 160 位。
 
*/


using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Security.Cryptography;

namespace  MD5_App
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            
string strSrc = "How are you?";
            Console.WriteLine(
"原文:" + strSrc);
            Console.WriteLine();

            Console.WriteLine(
"MD5哈希值:" + MD5_Hash(strSrc));
            Console.WriteLine();

            Console.WriteLine(
"SHA1哈希值:" + SHA1_Hash(strSrc));
            Console.WriteLine();
        }


        
//MD5
        static public string MD5_Hash(string str_md5_in)
        
{
            MD5 md5 
= new MD5CryptoServiceProvider();
            
byte[] bytes_md5_in = UTF8Encoding.Default.GetBytes(str_md5_in);
            
byte[] bytes_md5_out = md5.ComputeHash(bytes_md5_in);
            
string str_md5_out = BitConverter.ToString(bytes_md5_out);
            
//str_md5_out = str_md5_out.Replace("-", "");
            return str_md5_out;
        }


        
//SHA1
        static public string SHA1_Hash(string str_sha1_in)
        
{
            SHA1 sha1 
= new SHA1CryptoServiceProvider();
            
byte[] bytes_sha1_in = UTF8Encoding.Default.GetBytes(str_sha1_in);
            
byte[] bytes_sha1_out = sha1.ComputeHash(bytes_sha1_in);
            
string str_sha1_out = BitConverter.ToString(bytes_sha1_out);
            
//str_sha1_out = str_sha1_out.Replace("-", "");
            return str_sha1_out;
        }

    }

}


源码附件: /Files/bluesky521/DES_Hash_Demo.rar

目录
相关文章
|
2月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
59 3
|
24天前
|
算法 安全
散列值使用相同的哈希算法
当使用相同的哈希算法对相同的数据进行散列时,所产生的散列值(也称为哈希值或摘要)总是相同的。这是因为哈希算法是一种确定性的函数,它对于给定的输入将始终产生相同的输出。 例如,如果你用SHA-256算法对字符串"hello world"进行哈希处理,无论何时何地,只要输入是完全一样的字符串,你都会得到相同的160位(40个十六进制字符)的SHA-256散列值。 但是,需要注意的是,即使是输入数据的微小变化也会导致产生的散列值完全不同。此外,不同的哈希算法(如MD5、SHA-1、SHA-256等)会对相同的数据产生不同的散列值。 哈希算法的一个关键特性是它们的“雪崩效应”,即输入中的一点小小
32 4
|
6月前
|
算法 Java 数据处理
Java中MD5加密算法的实现
Java中MD5加密算法的实现
|
2月前
|
存储 算法 C#
C#哈希查找算法
C#哈希查找算法
|
2月前
|
算法 安全 Go
Python与Go语言中的哈希算法实现及对比分析
Python与Go语言中的哈希算法实现及对比分析
51 0
|
2月前
|
存储 算法 C++
【算法】哈希映射(C/C++)
【算法】哈希映射(C/C++)
|
4月前
|
算法 安全 JavaScript
安全哈希算法:SHA算法
安全哈希算法:SHA算法
105 1
安全哈希算法:SHA算法
|
3月前
|
算法 数据安全/隐私保护 C++
超级好用的C++实用库之MD5信息摘要算法
超级好用的C++实用库之MD5信息摘要算法
102 0
|
4月前
|
JavaScript 算法 前端开发
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
656 1
|
4月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
68 1

热门文章

最新文章