Hashing و Encryption




Hashing و Encryption هردو روشهایی برای رمزنگاری هستند، نکته قابل توجه این است که هنگامی که متنی را Hash می‌کنید دیگر روش ساده‌ای تحت عنوان dehash کردن آن وجود ندارد و شما برای اینکه متنی را با آن مقایسه بکنید مجبورید آن متن را با همان شیوه Hash کنید و سپس با متن hash شده مقایسه نمایید، در صورتی که یک متن Encrypt شده را می‌توانید Decrypt کرده و با یک متن دیگر مقایسه کنید.

احتمالا می‌دانید که روشهای Encryption مختلفی وجود دارند، در اینجا من کدی را که سالها پیش با استفاده از الگوریتم SHA و با VB.NET نوشته بودم در اختیارتان می‌گذارم:

Imports System.Security.Cryptography
Imports System.Text
.
.
.
 Public Function GetEncryptedData(ByVal Data As String) As String

        Dim shaM As New SHA1Managed
        Convert.ToBase64String(shaM.ComputeHash(Encoding.ASCII.GetBytes(Data)))
        Dim eNC_data() As Byte = ASCIIEncoding.ASCII.GetBytes(Data)
        Dim eNC_str As String = Convert.ToBase64String(eNC_data)

        Return eNC_str

    End Function

    Public Function GetDecryptedData(ByVal Data As String) As String

        Dim dEC_data() As Byte = Convert.FromBase64String(Data)
        Dim dEC_Str As String = ASCIIEncoding.ASCII.GetString(dEC_data)
        Return dEC_Str

    End Function

همانطور که ملاحظه کردید دو تابع به منظور Encrypt مردن و Decrypt کردن در کد فوق نوشته شده‌است.

در مورد Hashing که معمولا برای نگهداری passeord ها استفاده می‌شود یکی از روشها استفاده از System.Web.Security است:

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(txtPwd.Text, "MD5").ToString()

همانطور که ملاحظه کردید من از MD5 به عنوانت فرمت Hashing استفاده کردم

هیچ نظری موجود نیست: