哈希算法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

目录
相关文章
|
21天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
38 3
|
5月前
|
算法 Java 数据处理
Java中MD5加密算法的实现
Java中MD5加密算法的实现
|
26天前
|
存储 算法 C#
C#哈希查找算法
C#哈希查找算法
|
1月前
|
算法 安全 Go
Python与Go语言中的哈希算法实现及对比分析
Python与Go语言中的哈希算法实现及对比分析
35 0
|
1月前
|
存储 算法 C++
【算法】哈希映射(C/C++)
【算法】哈希映射(C/C++)
|
2月前
|
算法 数据安全/隐私保护 C++
超级好用的C++实用库之MD5信息摘要算法
超级好用的C++实用库之MD5信息摘要算法
61 0
|
3月前
|
算法 安全 JavaScript
安全哈希算法:SHA算法
安全哈希算法:SHA算法
50 1
安全哈希算法:SHA算法
|
3月前
|
JavaScript 算法 前端开发
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
461 1
|
3月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
57 1
|
4月前
|
缓存 负载均衡 算法
(四)网络编程之请求分发篇:负载均衡静态调度算法、平滑轮询加权、一致性哈希、最小活跃数算法实践!
先如今所有的技术栈中,只要一谈关于高可用、高并发处理相关的实现,必然会牵扯到集群这个话题,也就是部署多台服务器共同对外提供服务,从而做到提升系统吞吐量,优化系统的整体性能以及稳定性等目的。