Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Security
- Namespace Sitesource.Encryption
- ''' <summary>
- ''' Util
- ''' </summary>
- ''' <remarks>
- ''' http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config-file.aspx
- ''' </remarks>
- Public Class Util
- Shared entropy As Byte() = System.Text.Encoding.Unicode.GetBytes(Sitesource.Util.FootPrint.GetID)
- ''' <summary>
- ''' Encrypt a string.
- ''' </summary>
- ''' <param name="input"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Shared Function EncryptString(ByVal input As System.Security.SecureString) As String
- Dim encryptedData As Byte() = System.Security.Cryptography.ProtectedData.Protect(System.Text.Encoding.Unicode.GetBytes(ToInsecureString(input)), entropy, System.Security.Cryptography.DataProtectionScope.CurrentUser)
- Return Convert.ToBase64String(encryptedData)
- End Function
- ''' <summary>
- ''' Decrypt as string.
- ''' </summary>
- ''' <param name="encryptedData"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Shared Function DecryptString(ByVal encryptedData As String) As SecureString
- Try
- Dim decryptedData As Byte() = System.Security.Cryptography.ProtectedData.Unprotect(Convert.FromBase64String(encryptedData), entropy, System.Security.Cryptography.DataProtectionScope.CurrentUser)
- Return ToSecureString(System.Text.Encoding.Unicode.GetString(decryptedData))
- Catch
- Return New SecureString()
- End Try
- End Function
- ''' <summary>
- ''' To secure string.
- ''' </summary>
- ''' <param name="input"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Shared Function ToSecureString(ByVal input As String) As SecureString
- Dim secure As New SecureString()
- For Each c As Char In input
- secure.AppendChar(c)
- Next
- secure.MakeReadOnly()
- Return secure
- End Function
- ''' <summary>
- ''' To insecure string.
- ''' </summary>
- ''' <param name="input"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Shared Function ToInsecureString(ByVal input As SecureString) As String
- Dim returnValue As String = String.Empty
- Dim ptr As IntPtr = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(input)
- Try
- returnValue = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(ptr)
- Finally
- System.Runtime.InteropServices.Marshal.ZeroFreeBSTR(ptr)
- End Try
- Return returnValue
- End Function
- ''' <summary>
- ''' IsNullOrEmpty
- ''' </summary>
- ''' <param name="s"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Shared Function IsNullOrEmpty(ByVal s As SecureString) As Boolean
- If s Is Nothing Then Return True
- Return s.Length < 1
- End Function
- End Class
- End Namespace
Advertisement
Add Comment
Please, Sign In to add comment