用HashAlgorithm來加强數據的保險程度。

(華版)

由于很多應用程序已用互聨網作為执行時的平台,而現在的黑客也越來越猖獗。所以我們不能不把我們所傳送的資料和數據加密。特别是一般的登录密碼,往往很多程序員都忽略了這一點;而就直接把用户所輸入的密碼用HTTP-POST方法來傳送回去服務端验証。

另一方面,收藏在數據庫里的用户登录密碼也應該把它稍微Hashes一下。這样就能保証你的用户登录密碼没那么容易就被泄漏或被盗用嘛。

在.NET Framework里就提供了HashAlgorithm這样的一個Class,好讓我們能够以很輕易的就可以把一些字符串(例如用户登录密碼)hashes起來;然后再把它轉去Base64的字符串,這样就可以在HTTP-POST里通往無阻了。而且還可以從五種算法中(SHA-1,SHA-256,SHA-384,SHA-512和MD5)選出一個所適合我們的應用程序需求。

注意:
當一個字符串進行了Hashes,就永不能decrypted回原本的字符串。


    Private Function GetHashDataString(ByVal source As StringByVal hashAlgorithm As StringAs String

        
Try

            
'// 聲明變量。
            Dim SourceInByte() As Byte
            
Dim HashedInByte() As Byte
            
Dim HashedInBase64 As String
            
Dim HashAlgo As HashAlgorithm

            
'// 檢查所指定的Hash算法。
            Select Case hashAlgorithm
                
Case "SHA1"
                    '// 實例SHA1Managed對象。
                    HashAlgo = New SHA1Managed

                
Case "SHA256"
                    '// 實例SHA256Managed對象。
                    HashAlgo = New SHA256Managed

                
Case "SHA384"
                    '// 實例SHA384Managed對象。
                    HashAlgo = New SHA384Managed

                
Case "SHA512"
                    '// 實例SHA512Managed對象。
                    HashAlgo = New SHA512Managed

                
Case "MD5"
                    '// 實例MD5CryptoServiceProvider對象。
                    HashAlgo = New MD5CryptoServiceProvider

                
Case Else
                    
'// 設定默認遞回值數。
                    Return ""
            End Select

            
'// 把source字符串轉去UNICODE字節數组。
            SourceInByte = Encoding.ASCII.GetBytes(source)

            
'// 計算HASH字節數组。
            HashedInByte = HashAlgo.ComputeHash(SourceInByte)

            
'// 把HASH字節數组轉去Base64字符串。
            HashedInBase64 = Convert.ToBase64String(HashedInByte)

            
'// 設定遞回值數。
            Return HashedInBase64

        
Catch ex As Exception

            
'// 設定默認遞回值數。
            Return ""

        End Try

    
End Function

點撃下載代碼
posted on 2005-03-17 01:57  克仔  阅读(1636)  评论(4编辑  收藏  举报