| |
微软.net加密技术简介 |
出处:blue blog |
|
| [ 2005-09-05 10:23:49
] |
作者:Paul D. Sheriff
|
责任编辑:moningfeng |
对于.net开发者,有几种散列算法供选择,最常用的是SHA1和MD5。让我们看看如何将一个普通的字符串“Paul”进行散列运算,得到一个完全不可辨认的值。
使用SHA1计算散列
让我们创建一个新的例程来计算字符串“Paul”的散列值。在Visual Studio .NET中创建一个新的Windows应用程序,在窗体上拖放一个按钮。在按钮的Click事件中,调用一个名称为HashText的方法。下面就是你添加到窗体代码中用来试验散列算法的代码。在输入代码之前你需要引入System.Security.Cryptography命名空间。
以下内容为程序代码:
Private Sub HashText(ByVal TextToHash As String) Dim SHA1 As SHA1CryptoServiceProvider Dim bytValue() As Byte Dim bytHash() As Byte
' Create New Crypto Service Provider Object SHA1 = New SHA1CryptoServiceProvider
' Convert the original string to array of Bytes bytValue = _ System.Text.Encoding.UTF8.GetBytes(TextToHash)
' Compute the Hash, returns an array of Bytes bytHash = SHA1.ComputeHash(bytValue)
SHA1.Clear()
' Return a base 64 encoded string of the Hash value Debug.WriteLine(Convert.ToBase64String(bytHash)) End Sub 你可以将一个字符串传入这个例程,以得到散列值。例如,你可以传入“Paul”这个字符串,调试窗口将显示下列字符: 以下内容为程序代码:
w2h6uYgMJt/nq5ZqihcBteAXwv8= 现在将传入的值改为“Pauly”,你可以看到如下输出: 以下内容为程序代码:
proywxJ0znMpGF5sbB18+7GSAsM= 正象你看到的,传入字符串的一处小小的改动就生成了一个完全不同的结果。这也是散列如此有效的原因————很难得到字符转换的模式或者从加密的字符串中得到原始字符串的内容。
|