Alireza.AM
سه شنبه 12 دی 1391, 00:04 صبح
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.A SCII.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 که معمولا برای نگهداری password ها استفاده میشود یکی از روشها استفاده از System.Web.Security است:
System.Web.Security.FormsAuthentication.HashPasswo rdForStoringInConfigFile(txtPwd.Text, "MD5").ToString()
همانطور که ملاحظه کردید من از MD5 به عنوانت فرمت Hashing استفاده کردم
احتمالا میدانید که روشهای 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.A SCII.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 که معمولا برای نگهداری password ها استفاده میشود یکی از روشها استفاده از System.Web.Security است:
System.Web.Security.FormsAuthentication.HashPasswo rdForStoringInConfigFile(txtPwd.Text, "MD5").ToString()
همانطور که ملاحظه کردید من از MD5 به عنوانت فرمت Hashing استفاده کردم