.NET加密方法收集

原创 2007年10月01日 01:44:00

NET中MD5加密方法怎么用??在哪个名称空间下??

在这个命名空间using System.Security.Cryptography;
具体的代码是:
         public static Byte[] ConvertStringToByteArray(String s)
  {
   return (new UnicodeEncoding()).GetBytes(s);
  }
         byte[] byte_pwd = ConvertStringToByteArray(pwd);加密前的密码
         byte[] result_pwd = ((HashAlgorithm) CryptoConfig.CreateFromName("MD5")).ComputeHash(byte_pwd);
               string pwd(加密后的密码)= BitConverter.ToString(result_pwd);

1。nd5加密示例-------------------------------------------------------------------------------------

using System;

namespace Directory
{
 /// <summary>
 /// MD5Encode 的摘要说明。
 /// </summary>
 public class MD5Encode
 {
  public string Encode(string SourceString)
  {
   string Result=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(SourceString,"MD5");
   return Result;
  }
 }
}

2。使用散列算法对数据进行加密 --------------------------------------------------------------

大多数开发人员使用数据库存储密码。但是,在数据库中查找用户数据的人员也能够看到这些密码。将密码以明文的方式存储在数据库中,是很不安全的。你可以使用散列算法对密码进行加密,然后再将其存储在数据库中。用户输入密码后,你可以再次使用散列算法对其进行解密,然后将其与存储在数据库中的散列进行比较。

.Net开发人员可以使用多种加密算法,最常用的是 SHA1 和 MD5。本文将介绍在如何使用MD5算法对密码进行加密。

代码很简单:

using System.Security.Cryptography;

  public string PwdEncrypt(string Pwd)  //密码加密
  {
   MD5 md5=new MD5CryptoServiceProvider();
   byte[] data=System.Text.Encoding.Default.GetBytes(Pwd );
   byte[] md5data=md5.ComputeHash(data);
   
   md5.Clear();
   string Str="";

   for (int i=0;i<md5data.Length-1;i++)
   {
    Str+=md5data[i].ToString("x").PadLeft(2,'0');
   }

   return Str;
  }

加密后的字符串看起来也与原始输入相去甚远。这些散列算法对于创建没有任何意义的密码来说非常有用,也使其它人很难猜出这些密码。使用散列算法对原始密码加密后将无法再恢复。

在散列中添加一些“盐”值

到目前为止,散列算法暴露出来的问题之一是,如果两个用户碰巧使用相同的密码,那么散列值将完全相同。如果黑客看到存储密码的表格,会从中找到规律并明白很可能是使用了常见的词语,然后黑客会开始词典攻击以确定这些密码。要确保任何两个用户密码的散列值都不相同,一种方法是在加密密码之前,在每个用户的密码中添加一个唯一的值。这个唯一值称为“盐”值。在进行此操作时,需要确保将使用的盐值存储为用户记录的一部分。如果使用表格存储用户 ID 和密码,建议使用不同的表格来存储盐值。这样,即使数据库泄漏,盐值也可以提供一层额外的安全保护。

在用户密码中添加盐值的方法有多种。最简单的方法是摘取用户的某些信息(例如姓、名、电子邮件地址或员工 ID)并将其添加到用户密码中,然后再进行加密。这种方法的缺点是,因为需要存储盐值,所以如果黑客找到该值,将会对你所做的一切操作了如指掌。当然,黑客需要花费额外的时间来破解盐值,但这对黑客来说简直是易如反掌。

另外一种方法是使用 .NET Framework 类 RNGCryptoServiceProvider 创建一个随机的数字字符串。RNG 表示随机数生成器。该类可以创建一个任意长度的随机字节数组。可以使用此随机字节数组作为散列算法的盐值。要采用这种方法,必须安全地存储该盐值。

有关加密的详细信息,查阅微软的“Microsoft .NET 中的简化加密”。
http://www.microsoft.com/china/msdn/archives/library/dnnetsec/html/cryptosimplified.asp#cryptogr_topic3

3。又一个md5加密----------------------------------------------------------------------

public static string Encrypt(string Password,int Format)
  {
   string str = "";
   switch(Format)
   {
    case 0:
     str = FormsAuthentication.HashPasswordForStoringInConfigFile(Password,"SHA1");
     break;
    case 1:
     str = FormsAuthentication.HashPasswordForStoringInConfigFile(Password,"MD5");
     break;
   }
   return str;
  }

 

ASP.net中md5加密的方法

        MD5简介:         MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明...
  • ChessPlayer
  • ChessPlayer
  • 2007年08月02日 16:52
  • 2851

.net实现加密算法小结

本文主要演示.net中常用三种加密方式:其中SHA1、MD5为不可逆加密,最后一种为自定义加密密钥,可进行解密。如图:   在.net下使用上述方法需要先引用: using Sy...
  • longteng1116
  • longteng1116
  • 2014年02月21日 02:40
  • 1728

.net 中的几种加密解密方法

  public class EncryptTools    ...{        加密函数#region 加密函数        /**////         /// md5加密        ...
  • hanzhongzheng
  • hanzhongzheng
  • 2007年08月20日 22:05
  • 467

.NET中加密和解密的实现方法 -4

客户端的工作流程是:    建立和发送公共密钥给服务器。    从服务器接收被加密的对称密钥。    解密该对称密钥并将它作为私有的不对称密钥。    接收并使用不对称密钥解密信息。   代码如下:n...
  • flysknow
  • flysknow
  • 2005年03月20日 14:30
  • 812

(vb.net)MD5 32位加密小写输入

vb.net  Imports System.Security.Cryptography Public Shared Function funcMD5(ByVal str As String)...
  • angle_greensky110
  • angle_greensky110
  • 2016年12月30日 16:20
  • 513

.net中常用的几种加密解密

一、MD5加密算法    : MD5全称是message-digest algorithm 5,简单的说就是单向的加密,即是说无法根据密文推导出明文。     MD5主要用途:        1、对一...
  • tangjue18246068217
  • tangjue18246068217
  • 2016年11月25日 11:30
  • 146

.NET中的加解密和数字签名

获取数字证书 获取数字证书有三种方法,一是从CA机构申请,二是自己搭建服务器发布证书,三是使用makecert.exe来生成一个证书文件。这里我们使用makecert.exe来生成一个证书文件,用来...
  • yjpyt
  • yjpyt
  • 2015年04月12日 18:15
  • 496

.NET 加密 通用代码(c#)

方法一 (不可逆加密) public string EncryptPassword(string PasswordString,string PasswordFormat )    ...{    s...
  • czmtxz
  • czmtxz
  • 2008年03月31日 22:19
  • 807

JS加密解密对于asp.net解密加密

对于特殊数据传输,我们需要做到加密以及后台解密等!  一:js加密、asp.net解密        js:encodeURI(需要加密的变量)        asp.net:Server.Ur...
  • jiang199244
  • jiang199244
  • 2014年02月27日 10:28
  • 2766

在ASP.NET中进行MD5加密。

在ASP.NET中MD5的加密方式很简单,代码如下: FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLow...
  • D_Altman
  • D_Altman
  • 2017年05月17日 11:03
  • 1108
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET加密方法收集
举报原因:
原因补充:

(最多只允许输入30个字)