initial commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
Imports System
|
||||
Imports System.Collections.Generic
|
||||
Imports System.Linq
|
||||
Imports System.Text
|
||||
Imports System.Security.Cryptography
|
||||
|
||||
Public Class Crypters
|
||||
|
||||
|
||||
|
||||
Private Shared singleCrypters As Crypters = Nothing
|
||||
|
||||
Private Shared MY_IV As String = "2230209522049090" 'length 16
|
||||
|
||||
Private Shared My_PASSWORD As String = "4814780584699673"
|
||||
|
||||
Private Shared SALT As String = "2894356330652558"
|
||||
|
||||
Public Shared Function Create() As Crypters
|
||||
If singleCrypters IsNot Nothing Then
|
||||
Return singleCrypters
|
||||
End If
|
||||
singleCrypters = New Crypters()
|
||||
Return singleCrypters
|
||||
End Function
|
||||
Public Function Encrypt(ByVal raw As String) As String
|
||||
Using csp = New AesCryptoServiceProvider()
|
||||
Dim e As ICryptoTransform = GetCryptoTransform(csp, True)
|
||||
Dim inputBuffer As Byte() = Encoding.GetBytes(raw) 'Reference to a non-shared member requires an object reference
|
||||
Dim output As Byte() = e.TransformFinalBlock(inputBuffer, 0, inputBuffer.Length)
|
||||
Dim encrypted As String = Convert.ToBase64String(output)
|
||||
Return encrypted
|
||||
End Using
|
||||
End Function
|
||||
|
||||
Public Function Decrypt(ByVal encrypted As String) As String
|
||||
Using csp = New AesCryptoServiceProvider()
|
||||
Dim d = GetCryptoTransform(csp, False)
|
||||
Dim output As Byte() = Convert.FromBase64String(encrypted)
|
||||
Dim decryptedOutput As Byte() = d.TransformFinalBlock(output, 0, output.Length)
|
||||
Dim decypted As String = Encoding.GetString(decryptedOutput) 'Reference to a non-shared member requires an object reference
|
||||
Return decypted
|
||||
End Using
|
||||
End Function
|
||||
Private Function GetCryptoTransform(ByVal csp As AesCryptoServiceProvider, ByVal encrypting As Boolean) As ICryptoTransform
|
||||
csp.Mode = CipherMode.CBC
|
||||
csp.Padding = PaddingMode.PKCS7
|
||||
Dim spec = New Rfc2898DeriveBytes(Encoding.GetBytes(My_PASSWORD), Encoding.GetBytes(SALT), 65536) 'Reference to a non-shared member requires an object reference
|
||||
Dim key As Byte() = spec.GetBytes(16)
|
||||
csp.IV = Encoding.GetBytes(MY_IV) 'Reference to a non-shared member requires an object reference
|
||||
csp.Key = key
|
||||
|
||||
If encrypting Then
|
||||
Return csp.CreateEncryptor()
|
||||
End If
|
||||
|
||||
Return csp.CreateDecryptor()
|
||||
End Function
|
||||
End Class
|
||||
Reference in New Issue
Block a user