deebug

Encryption.Util.vb

Jul 12th, 2011
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Imports System.Security
  2.  
  3. Namespace Sitesource.Encryption
  4.     ''' <summary>
  5.    ''' Util
  6.    ''' </summary>
  7.    ''' <remarks>
  8.    ''' http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config-file.aspx
  9.    ''' </remarks>
  10.    Public Class Util
  11.         Shared entropy As Byte() = System.Text.Encoding.Unicode.GetBytes(Sitesource.Util.FootPrint.GetID)
  12.         ''' <summary>
  13.        ''' Encrypt a string.
  14.        ''' </summary>
  15.        ''' <param name="input"></param>
  16.        ''' <returns></returns>
  17.        ''' <remarks></remarks>
  18.        Public Shared Function EncryptString(ByVal input As System.Security.SecureString) As String
  19.             Dim encryptedData As Byte() = System.Security.Cryptography.ProtectedData.Protect(System.Text.Encoding.Unicode.GetBytes(ToInsecureString(input)), entropy, System.Security.Cryptography.DataProtectionScope.CurrentUser)
  20.             Return Convert.ToBase64String(encryptedData)
  21.         End Function
  22.         ''' <summary>
  23.        ''' Decrypt as string.
  24.        ''' </summary>
  25.        ''' <param name="encryptedData"></param>
  26.        ''' <returns></returns>
  27.        ''' <remarks></remarks>
  28.        Public Shared Function DecryptString(ByVal encryptedData As String) As SecureString
  29.             Try
  30.                 Dim decryptedData As Byte() = System.Security.Cryptography.ProtectedData.Unprotect(Convert.FromBase64String(encryptedData), entropy, System.Security.Cryptography.DataProtectionScope.CurrentUser)
  31.                 Return ToSecureString(System.Text.Encoding.Unicode.GetString(decryptedData))
  32.             Catch
  33.                 Return New SecureString()
  34.             End Try
  35.         End Function
  36.         ''' <summary>
  37.        ''' To secure string.
  38.        ''' </summary>
  39.        ''' <param name="input"></param>
  40.        ''' <returns></returns>
  41.        ''' <remarks></remarks>
  42.        Public Shared Function ToSecureString(ByVal input As String) As SecureString
  43.             Dim secure As New SecureString()
  44.             For Each c As Char In input
  45.                 secure.AppendChar(c)
  46.             Next
  47.             secure.MakeReadOnly()
  48.             Return secure
  49.         End Function
  50.         ''' <summary>
  51.        ''' To insecure string.
  52.        ''' </summary>
  53.        ''' <param name="input"></param>
  54.        ''' <returns></returns>
  55.        ''' <remarks></remarks>
  56.        Public Shared Function ToInsecureString(ByVal input As SecureString) As String
  57.             Dim returnValue As String = String.Empty
  58.             Dim ptr As IntPtr = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(input)
  59.             Try
  60.                 returnValue = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(ptr)
  61.             Finally
  62.                 System.Runtime.InteropServices.Marshal.ZeroFreeBSTR(ptr)
  63.             End Try
  64.             Return returnValue
  65.         End Function
  66.         ''' <summary>
  67.        ''' IsNullOrEmpty
  68.        ''' </summary>
  69.        ''' <param name="s"></param>
  70.        ''' <returns></returns>
  71.        ''' <remarks></remarks>
  72.        Public Shared Function IsNullOrEmpty(ByVal s As SecureString) As Boolean
  73.             If s Is Nothing Then Return True
  74.             Return s.Length < 1
  75.         End Function
  76.     End Class
  77. End Namespace
Advertisement
Add Comment
Please, Sign In to add comment