1
- using System ;
2
- using System . Collections . Generic ;
3
- using System . Linq ;
4
- using System . Security . Cryptography ;
1
+ using System . Security . Cryptography ;
5
2
using System . Text ;
6
- using System . Threading . Tasks ;
7
3
8
4
namespace UDP_UI . Modules
9
5
{
@@ -26,31 +22,69 @@ public AesModule()
26
22
_encrypt . KeySize = 128 ;
27
23
}
28
24
29
- public void setEncryptKey ( byte [ ] key ) {
25
+ public void setEncryptKey ( byte [ ] key )
26
+ {
30
27
_encrypt . Key = key ;
31
28
}
32
29
33
- public void setDecryptKey ( byte [ ] key ) {
30
+ public void setDecryptKey ( byte [ ] key )
31
+ {
34
32
_decrypt . Key = key ;
35
33
}
36
34
37
- public byte [ ] encryptOutgoing ( string text )
35
+ public string encryptOutgoing ( string text )
38
36
{
39
37
_encrypt . GenerateIV ( ) ;
40
38
byte [ ] buff ;
41
- using ( var encryptor = _encrypt . CreateEncryptor ( ) ) {
42
- using ( var memStream = new MemoryStream ( ) ) {
43
- using ( var csEncrypt = new CryptoStream ( memStream , encryptor , CryptoStreamMode . Write ) ) {
39
+ using ( var encryptor = _encrypt . CreateEncryptor ( ) )
40
+ {
41
+ using ( var memStream = new MemoryStream ( ) )
42
+ {
43
+ using ( var csEncrypt = new CryptoStream ( memStream , encryptor , CryptoStreamMode . Write ) )
44
+ {
44
45
using ( var bw = new BinaryWriter ( csEncrypt , Encoding . UTF8 ) )
45
46
{
46
47
bw . Write ( text ) ;
47
48
bw . Close ( ) ;
48
49
buff = memStream . ToArray ( ) ;
49
- return _encrypt . IV . Concat ( buff ) . ToArray ( ) ;
50
+
50
51
}
51
52
}
52
53
}
53
54
}
55
+ return $ "{ Convert . ToBase64String ( _encrypt . IV ) } *{ Convert . ToBase64String ( buff ) } ";
56
+ }
57
+
58
+ public string decryptIncoming ( string IVCipher_Base64 )
59
+ {
60
+ string [ ] parsed = parseBase64 ( IVCipher_Base64 ) ;
61
+ string IV_Base64 = parsed [ 0 ] ;
62
+ string Cipher_Base64 = parsed [ 1 ] ;
63
+ byte [ ] IV = System . Convert . FromBase64String ( IV_Base64 ) ;
64
+ byte [ ] Cipher = System . Convert . FromBase64String ( Cipher_Base64 ) ;
65
+ _decrypt . IV = IV ;
66
+
67
+ string output ;
68
+ using ( var decryptor = _decrypt . CreateDecryptor ( ) ) {
69
+ using ( MemoryStream ms = new MemoryStream ( Cipher ) ) {
70
+ using ( CryptoStream cs = new CryptoStream ( ms , decryptor , CryptoStreamMode . Read ) ) {
71
+ using ( StreamReader sr = new StreamReader ( cs ) ) {
72
+ output = sr . ReadToEnd ( ) ;
73
+ }
74
+ }
75
+ }
76
+ }
77
+
78
+
79
+ return output ;
80
+ }
81
+
82
+ public string [ ] parseBase64 ( string b64 )
83
+ {
84
+ var sides = b64 . Split ( "*" ) ;
85
+ var IV = sides [ 0 ] ;
86
+ var Cipher = sides [ 1 ] ;
87
+ return new string [ ] { IV , Cipher } ;
54
88
}
55
89
}
56
90
}
0 commit comments