302Soft—302软件技术联盟

ASP.NET / C# / PowerBuilder 技术交流
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C# MD5 16位加密实例

Posted on 2007-01-09 13:13  寒夜听雨  阅读(1889)  评论(0编辑  收藏  举报
MD5 16位加密实例
环境:vs.net2005/sql server2000/xp测试通过
1.MD5 16位加密实例
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;

namespace md5
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            Console.WriteLine(UserMd5(
"8"));
            Console.WriteLine(GetMd5Str(
"8"));
        }

        
/// <summary>
        
/// MD5 16位加密
        
/// </summary>
        
/// <param name="ConvertString"></param>
        
/// <returns></returns>

        public static string GetMd5Str(string ConvertString)
        
{
            MD5CryptoServiceProvider md5 
= new MD5CryptoServiceProvider();
            
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 48);
            t2 
= t2.Replace("-""");
            
return t2;
        }


        
/// <summary>
        
/// MD5 32位加密
        
/// </summary>
        
/// <param name="str"></param>
        
/// <returns></returns>

       static  string UserMd5(string str)
        
{
            
string cl = str;
            
string pwd = "";
            MD5 md5 
= MD5.Create();//实例化一个md5对像
            
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
            
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
            for (int i = 0; i < s.Length; i++)
            
{
                
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 

                pwd 
= pwd + s[i].ToString("X");
                
            }

            
return pwd;
        }

    }

}


Copyright(C) 2004-2007 302Soft-寒夜听雨 版权所有