1 #Region "Microsoft.VisualBasic::e6590f0ef59bf87cce8a3dcc35af5dc9, Microsoft.VisualBasic.Core\Extensions\Security\AES.vb"
2
3     ' Author:
4     
5     '       asuka (amethyst.asuka@gcmodeller.org)
6     '       xie (genetics@smrucc.org)
7     '       xieguigang (xie.guigang@live.com)
8     
9     ' Copyright (c) 2018 GPL3 Licensed
10     
11     
12     ' GNU GENERAL PUBLIC LICENSE (GPL3)
13     
14     
15     ' This program is free software: you can redistribute it and/or modify
16     ' it under the terms of the GNU General Public License as published by
17     ' the Free Software Foundation, either version 3 of the License, or
18     ' (at your option) any later version.
19     
20     ' This program is distributed in the hope that it will be useful,
21     ' but WITHOUT ANY WARRANTY; without even the implied warranty of
22     ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23     ' GNU General Public License for more details.
24     
25     ' You should have received a copy of the GNU General Public License
26     ' along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29
30     ' /********************************************************************************/
31
32     ' Summaries:
33
34     '     Class AES
35     
36     '         Constructor: (+1 OverloadsSub New
37     '         Function: Decrypt, DecryptString, Encrypt, EncryptData
38     
39     
40     ' /********************************************************************************/
41
42 #End Region
43
44 Namespace SecurityString
45
46     Public Class AES : Inherits SecurityStringModel
47
48         Sub New(pass As String)
49             Me.strPassphrase = pass
50         End Sub
51
52         Public Overrides Function Decrypt(input() As ByteAs Byte()
53             Dim AES As New System.Security.Cryptography.RijndaelManaged
54             Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
55             Dim hash(31) As Byte
56             Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(strPassphrase))
57             Array.Copy(temp, 0, hash, 0, 16)
58             Array.Copy(temp, 0, hash, 15, 16)
59             AES.Key = hash
60             AES.Mode = Security.Cryptography.CipherMode.ECB
61             Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor
62             Dim Buffer As Byte() = input
63             Buffer = DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length)
64             Return Buffer
65         End Function
66
67         Public Overrides Function DecryptString(text As StringAs String
68             Dim AES As New System.Security.Cryptography.RijndaelManaged
69             Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
70             Dim decrypted As String = ""
71             Dim hash(31) As Byte
72             Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(strPassphrase))
73             Array.Copy(temp, 0, hash, 0, 16)
74             Array.Copy(temp, 0, hash, 15, 16)
75             AES.Key = hash
76             AES.Mode = Security.Cryptography.CipherMode.ECB
77             Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor
78             Dim Buffer As Byte() = Convert.FromBase64String(text)
79             decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
80             Return decrypted
81         End Function
82
83         Public Overrides Function Encrypt(input() As ByteAs Byte()
84             Dim AES As New System.Security.Cryptography.RijndaelManaged
85             Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
86             Dim hash(31) As Byte
87             Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(strPassphrase))
88             Array.Copy(temp, 0, hash, 0, 16)
89             Array.Copy(temp, 0, hash, 15, 16)
90             AES.Key = hash
91             AES.Mode = Security.Cryptography.CipherMode.ECB
92             Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor
93             Dim Buffer As Byte() = input
94             Buffer = DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length)
95             Return Buffer
96         End Function
97
98         Public Overrides Function EncryptData(text As StringAs String
99             Dim AES As New System.Security.Cryptography.RijndaelManaged
100             Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
101             Dim encrypted As String = ""
102             Dim hash(31) As Byte
103             Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(strPassphrase))
104             Array.Copy(temp, 0, hash, 0, 16)
105             Array.Copy(temp, 0, hash, 15, 16)
106             AES.Key = hash
107             AES.Mode = Security.Cryptography.CipherMode.ECB
108             Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor
109             Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(text)
110             encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
111             Return encrypted
112         End Function
113     End Class
114 End Namespace