现在的位置: 首页 > 综合 > 正文

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

2011年06月01日 ⁄ 综合 ⁄ 共 1972字 ⁄ 字号 评论关闭

(華版)

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

點撃下載代碼

抱歉!评论已关闭.