يمكنك استخدام الدوال التالية للتشفير باستخدام Password و دالة التشفير تسترجع منها String يمكنك أن تحفظه في ملف الداتا بيز مثل أي String و يوجد دالة اخري لفك التشفير و بنفس الأسلوب
كل ما عليك هو ان تمرر Text المراد تشفيره و أيضا الدوال تسمح باستخدام Password عند التشفير و فك التشفير
أما عن rgbIVString و saltString الموجودة في الدوال فيمكنك ان تستخدم اي شكل من الحروف و الارقام للتعويض عنهما
كود :
Friend Function Decrypt(text As String, passWord As String, rgbIVString As String, saltString As String) As String
Dim rgbIV As Byte() = Encoding.ASCII.GetBytes(rgbIVString)
Dim saltValueBytes As Byte() = Encoding.ASCII.GetBytes(saltString)
Dim textBuffer As Byte() = Convert.FromBase64String(text)
Dim rfc As Rfc2898DeriveBytes = New Rfc2898DeriveBytes(passWord, saltValueBytes, iterations)
Dim rgbKey As Byte() = rfc.GetBytes(keySize / 8)
Dim algorithm As ICryptoTransform = New RijndaelManaged() With {.Mode = CipherMode.ECB}.CreateDecryptor(rgbKey, rgbIV)
Dim bufferStream As MemoryStream = New MemoryStream(textBuffer)
Dim cryptographyStream As CryptoStream = New CryptoStream(bufferStream, algorithm, CryptoStreamMode.Read)
Dim buffer As Byte() = New Byte(textBuffer.Length - 1) {}
Dim sequence As Integer = cryptographyStream.Read(buffer, 0, buffer.Length)
bufferStream.Close()
cryptographyStream.Close()
Return Encoding.UTF8.GetString(buffer, 0, sequence)
End Function
Friend Function Encrypt(text As String, passWord As String, rgbIVString As String, saltString As String) As String
Dim rgbIV As Byte() = Encoding.ASCII.GetBytes(rgbIVString)
Dim saltValueBytes As Byte() = Encoding.ASCII.GetBytes(saltString)
Dim textBuffer As Byte() = Encoding.UTF8.GetBytes(text)
Dim rfc As Rfc2898DeriveBytes = New Rfc2898DeriveBytes(passWord, saltValueBytes, iterations)
Dim rgbKey As Byte() = rfc.GetBytes(keySize / 8)
Dim algorithm As ICryptoTransform = New RijndaelManaged() With {.Mode = CipherMode.ECB}.CreateEncryptor(rgbKey, rgbIV)
Dim bufferStream As MemoryStream = New MemoryStream()
Dim cryptographyStream As CryptoStream = New CryptoStream(bufferStream, algorithm, CryptoStreamMode.Write)
cryptographyStream.Write(textBuffer, 0, textBuffer.Length)
cryptographyStream.FlushFinalBlock()
Dim buffer As Byte() = bufferStream.ToArray()
bufferStream.Close()
cryptographyStream.Close()
Return Convert.ToBase64String(buffer)
End Function
كود :
Private iterations As Integer = 2
Private keySize As Integer = 256
راجع اللينك التالي لنفس الفكرة و لكن المتغيرات عبارة عن Byte
اللينــــــــــــــــــــك