.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微软提供的加密方法.rar

  • 2008年03月12日 22:42
  • 194B
  • 下载

.net中web加密方法的源码

  • 2011年07月21日 16:12
  • 4KB
  • 下载

ASP.Net中MD5和SHA1加密的几种方法

首先简单介绍一下MD5和SHA1: MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Sci...
  • fstanwh
  • fstanwh
  • 2014年06月09日 20:09
  • 1507

.Net加密解密方法

  • 2015年02月10日 14:51
  • 4KB
  • 下载

.NET编译项目时出现《此实现不是 Windows 平台 FIPS 验证的加密算法的一部分》处理方法

编译代码时出现源文件“D:\.......ervice.cs”未能打开(“此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。”)的问题的处理方法...

Asp.net常用加密解密方法

Asp.net常用加密解密方法 一、数据加密/编码算法列表 常见用于保证安全的加密或编码算法如下: 1、常用密钥算法 密钥算法用来对敏感数据、摘要、签名等信息进行加密,常用的密钥算法包括: ...

.net常用加密解密方法

http://www.cnblogs.com/qinweilong/archive/2010/06/30/1768535.html .net常用加密解密方法 UnicodeEncodin...
  • DJ2008
  • DJ2008
  • 2015年10月23日 09:54
  • 1800

asp.net常用加密解密方法

一、数据加密/编码算法列表 常见用于保证安全的加密或编码算法如下: 1、常用密钥算法 密钥算法用来对敏感数据、摘要、签名等信息进行加密,常用的密钥算法包括: DES(Data Encrypti...

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

来自csdn redbb,转载请标明原作者!! .NET将原来独立的API和SDK合并到一个框架中,这对于程序开发人员非常有利。它将CryptoAPI改编进.NET的System.Securit...

asp.net C#中对Web.Config字符串加密与解密的方法

【案例引用】 例如 XML/HTML code ? 1 2 3 connectionStrings>      ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET加密方法收集
举报原因:
原因补充:

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