• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 详解C#实现MD5加密的示例代码

详解C#实现MD5加密的示例代码

作者:shenghui188 字体:[增加 减小] 来源:互联网 时间:2017-05-28

shenghui188 通过本文主要向大家介绍了c语言32关键字详解,c语言链表详解,c语言指针详解,c语言题库及详解答案,c语言关键字详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

C#实现MD5加密,具体如下:

方法一

首先,先简单介绍一下MD5

MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来, 经md2、md3和md4发展而来。

MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的东东相同的可能性极小)

引用

using System.Security.Cryptography;
using System.Text;
</div>

具体代码如下(写在按钮的Click事件里):

byte[] result = Encoding.Default.GetBytes(this.tbPass.Text.Trim());  //tbPass为输入密码的文本框
MD5 md5 = new MD5CryptoServiceProvider();
byte[] output = md5.ComputeHash(result);
this.tbMd5pass.Text = BitConverter.ToString(output).Replace("-",""); //tbMd5pass为输出加密文本的文本框
</div>

方法二

C# md5加密(上)

string a; //加密前数据
string b; //加密后数据
b=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(a,"MD5")

using  System;
using  System.Security.Cryptography;

</div>

方法2

public  static  string  GetMD5(string  myString)  
{
MD5  md5   =  new  MD5CryptoServiceProvider();
byte[]  fromData  =  System.Text.Encoding.Unicode.GetBytes(myString);
byte[]  targetData  =  md5.ComputeHash(fromData);
string  byte2String  =  null;

for  (int  i=0;  i<targetData.Length;  i++)  
{
byte2String  +=  targetData[i].ToString("x");
}

return  byte2String;
} 

using  System.Security.Cryptography;


///  <summary>
///  给一个字符串进行MD5加密
///  </summary>
///  <param  name="strText">待加密字符串</param>
///  <returns>加密后的字符串</returns>
public  static  string  MD5Encrypt(string  strText)
{  
MD5  md5  =  new  MD5CryptoServiceProvider();
byte[]  result  =  md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strText));
return  System.Text.Encoding.Default.GetString(result);
} 

</div>

C# MD5加密

using System.Security.Cryptography;


private void btnOK_Click(object sender, System.EventArgs e)
{
  string strConn = "server=192.168.0.51;database=chengheng;User id=sa; password=123";
  if(texName.Text.Trim()=="")
  {
  this.RegisterStartupScript("sf","<script language='javascript'>alert('用户名不能为空');document.all('texName').focus()</script>");
  return;
  }
  else if(texPassword.Text.Trim()=="")
  {
  this.RegisterStartupScript("sfs","<script language='javascript'>alert('密码不能为空');document.all('texPassword').focus()</script>");
  return;
  }
  else
  {
  //将获取的密码加密与数据库中加了密的密码相比较
  byte[] by = md5.ComputeHash(utf.GetBytes(texPassword.Text.Trim()));
  string resultPass = System.Text.UTF8Encoding.Unicode.GetString(by);
  conn.ConnectionString=strConn;
  SqlCommand comm = new SqlCommand();
  string name = texName.Text.Trim().ToString();
  comm.CommandText="select Ruser_pwd,Ruser_nm from Ruser where Accountno = @name";
  comm.Parameters.Add("@name",SqlDbType.NVarChar,40);
  comm.Parameters["@name"].Value=name;
  try
  {   
   conn.Open();
   comm.Connection=conn;
   SqlDataReader dr=comm.ExecuteReader();
   if(dr.Read())
   {
   //用户存在,对密码进行检查
   if(dr.GetValue(0).Equals(resultPass))
   {
    string user_name=dr.GetValue(1).ToString();
    string user_Accountno=texName.Text.Trim();
    Session["logon_name"]=user_name;
    Session["logon_Accountno"]=user_Accountno;
    //登录成功,进行页面导向

   }
   else
   {
    this.RegisterStartupScript("wp","<script language='javascript'>alert('密码错误,请检查。')</script>");
   }
   
   }
   else
   {
   this.RegisterStartupScript("nu","<script language=javascript>alert('用户名不存在,请检查。')</script>");
   }
  }
  catch(Exception exec)
  { 
   this.RegisterStartupScript("wc","<script language=javascript>alert('网络连接有异,请稍后重试。')</script>");
  } 
  finally
  {
   conn.Close();
  }
  }
}

</div>

方法三

C#开发笔记 

一、C# MD5-16位加密实例,32位加密实例(两种方法)

环境: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)), 4, 8);
       t2 = t2.Replace("-", "");
      return t2;
     }

 /**//// <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)), 4, 8);
       t2 = t2.Replace("-", "");

      t2 = t2.ToLower();

       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;
     }
   }
}

</div>
using System.Security.Cryptography;
using System.Text; 

public static string StringToMD5Hash(string inputString)
    {
      MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
      byte[] encryptedBytes = md5.ComputeHash(Encoding.ASCII.GetBytes(inputString));
      StringBuilder sb = new StringBuilder();
      for (int i = 0; i < encryptedBytes.Length; i++)
      {
        sb.AppendFormat("{0:x2}", encryptedBytes[i]);
      }
      return sb.ToString();
    }


</div>

二、首先在界面中引入:using System.Web.Security;

假设密码对话框名字password,对输入的密码加密后存入变量pwd中,语句如下:

 string pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text, "MD5");
</div>

如果要录入则录入pwd,这样数据库实际的密码为202*****等乱码了。

如果登

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解C#中三个关键字params,Ref,out
  • 详解三种C#实现数组反转方式
  • 详解C# 利用反射根据类名创建类的实例对象
  • 详解C#用new和override来实现抽象类的重写区别
  • 详解C#把DataTable中数据一次插入数据库的方法
  • 详解c# 类的构造方法
  • 详解C#多线程之线程同步
  • 详解C#中 Thread,Task,Async/Await,IAsyncResult的那些事儿
  • 详解C#中的委托
  • 详解C#中的out和ref

相关文章

  • 2017-05-28C#实现任意数据类型转成json格式输出
  • 2017-05-28简单了解C#设计模式编程中的桥接模式
  • 2017-05-28基于私钥加密公钥解密的RSA算法C#实现方法
  • 2017-05-28C#使用Region对图形区域构造和填充的方法
  • 2017-05-28C#文件路径操作详细总结
  • 2017-05-28c#索引器详解示例
  • 2017-05-28关于C#基础知识回顾--反射(二)
  • 2017-05-28详解C#中委托,事件与回调函数讲解
  • 2017-05-28在类库或winform项目中打开另一个winform项目窗体的方法
  • 2017-05-28C#实现在图像中绘制文字图形的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#事件访问器详解
    • WPF绑定实例详解
    • C#命令行编译器配置方法
    • C#--微信小程序-跳一跳辅助工具源码
    • c#获取季度时间实例代码(季度的第一天)
    • C#操作ftp类完整实例
    • C#实现简单的Login窗口实例
    • C# DataTable使用方法详解
    • C#实现控制Windows系统关机、重启和注销的方法
    • C#控件命名规范汇总(超详细)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有