تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التشفير بإستخدام Rijndael
#1
كاتب الموضوع : Usama El-Mokadem


لغة البرمجة المستخدمة للتوضيح وفى إعداد المثال التالى (Microsoft Visual Basic.NET 2008):

Cryptography.zip

لتشفير نص يمكن أستخدام System.Security.Cryptography ، حيث أنها تتيح العديد من الدوال الجاهزة لتشفير البيانات بعدة اساليب مثل Symmetric Rijndael للتشفير المزدوج أو MD5 للتشفير فى اتجاه واحد او باستخدام مفتاح مزدوج ... الخ.

هذا المثال لاستخدام التشفير بأستخدام Symmetric Rijndael algorithm
ثم عرض البيانات المشفرة باستخدام Base64 لتسهيل قرائتها باستخدام الدالة System.Convert.ToBase64String
هذه الدالة تأخذ النص كمصفوفة من البايتات لذلك يلزم تحويل النص باستخدام الدالةSystem.Text.Encoding.ASCII.GetBytes لكن هذه الداله كما هو واضح من أسمها تتعامل مع الحروف الانجليزية القياسية فقط ASCII ، لذلك يمكنك استخدام Unicode أو UTF8 للتعامل مع النصوص العربية، الدالة: System.Text.Encoding.Unicode.GetBytes

ولفك تشفير البيانات، يتم ادخال البيانات بنفس هيئة Base64 ويتم تحويلها لأصلها باستخدام System.Convert.FromBase64String

دالة التشفير الرئيسية

كود :
Private Function Crypt(ByVal sText As String, ByVal sPass As String, ByVal bEnc As Boolean) As String
Dim bSalt As Byte() = System.Text.Encoding.ASCII.GetBytes("usama")
Dim iPass As New PasswordDeriveBytes(sPass, bSalt)
Dim Alg As New RijndaelManaged
Dim iTrans As ICryptoTransform
Dim iMem As New MemoryStream
Dim newData As Byte()

Alg.Key = iPass.GetBytes(32)
Alg.IV = iPass.GetBytes(16)

iTrans = IIf(bEnc = True, Alg.CreateEncryptor(), Alg.CreateDecryptor())
Dim iCrypt As New CryptoStream(iMem, iTrans, CryptoStreamMode.Write)

If bEnc Then
newData = System.Text.Encoding.Unicode.GetBytes(sText)
Else
newData = Convert.FromBase64String(sText)
End If

Try
iCrypt.Write(newData, 0, newData.Length)
iCrypt.Close()
If bEnc Then
Return Convert.ToBase64String(iMem.ToArray())
Else
Return System.Text.Encoding.Unicode.GetString(iMem.ToArray())
End If
Catch ex As Exception
End Try

Return ""
End Function
شكراً
}}}
تم الشكر بواسطة: محمد الزواوي , Usama El-Mokadem



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم