Verilerimizi web’de şifrelememizin sebebi önemli bilgilerin veri tabanında saklanırken salt halleriyle değil şifrelenmiş halde saklanmasını sağlamaktır. Kötü bir kullanıcı bir şekilde veri tabanınıza erişse bile önemli bilgilerinize doğrudan erişemeyecek ve onların şifrelenmiş haliyle karşılaşacak ve dolayısıyla bilgilerinize erişemeyecektir. sha1 algoritmasının kırıldığı söylense de bunun ne kadar doğru olduğu tartışılır. En azından md5 ve sha384 şifreleme algoritmaları daha kırılmamış durumda. sha384 md5’e oranla daha güvenlidir. 64 bitlik şifreleme sunduğunu sanıyorum. md5 şifreleme algoritması 32 bit koruma sağlıyor. Bazı warez sitelerinde md5’lerin çözüldüğü söylense de bu tamamen yalan. Onların yaptığı işlem şöyle: Efendim önce md5 oluşturucu hazırlıyorlar. bunu isterseniz php,asp,asp.net ile yapabilirsiniz. Daha sonra akıllarına gelen ve en çok kullanılan parolaları şifreleyip bir veri tabanı oluşturuluyor. Burda şifrelenmiş halde duran veriyi kötü niyetli kullanıcı gelip kendi elindeki şifrelenmiş veriyle karşılaştırıyor ve eğer bilgiler örtüşüyorsa parola bulunmuş demektir. Örneğin en çok kullanılan parola 123456 diyelim. Bu parolanın şifrelenmiş halini alıp veri tabanına ekliyorlar. Bunun gibi en çok tercih edilebilecek parolaların binlercesini ekliyorlar. Artık veritabanındaki kullanıcıların parolalarının sağlamlığı ile alakalı bir durumdur geriye kalan. Çok mu karışık anlattım bilemiyorum.Gelelim asıl meseleye öncelikle projemize şifreleme desteği eklemeliyiz. bunun için şu ifadeyi import etmeliyiz (sokmalıyız)Imports System.Security.CryptographyDaha sonra enumeratörlerimiz ve fonksiyonumuz geliyor:Enum HashMethodMD5SHA1SHA384End EnumFunction sifrele(ByVal kaynak As String, ByVal algorithm As HashMethod) As StringDim hashAlgorithm As HashAlgorithm = NothingSelect Case algorithmCase HashMethod.MD5hashAlgorithm = New MD5CryptoServiceProviderCase HashMethod.SHA1hashAlgorithm = New SHA1CryptoServiceProviderCase HashMethod.SHA384hashAlgorithm = New SHA384ManagedCase Else’ hata oluşması durumunda yapılacaklarEnd SelectDim byteValue() As Byte = Encoding.UTF8.GetBytes(kaynak)Dim hashValue() As Byte = hashAlgorithm.ComputeHash(byteValue)Return Convert.ToBase64String(hashValue)End Function
md5 için fonksiyonu şöyle çağırmalıyız: sifrele(“kaynak”,HashMethod.md5)sha1 için fonksiyonu şöyle çağırmalıyız: sifrele(“kaynak”,HashMethod.SHA1)sha384 için fonksiyonu şöyle çağırmalıyız: sifrele(“kaynak”,HashMethod.SHA384)