Public Class UUCodec
Public Function uuDecode(ByVal encodedString As String) As String
Dim decodedstring As String
Dim x As Long = encodedString.Length
Dim i As Long
Dim char1 As Double
Dim char2 As Double
For i = 1 To x Step 4
char1 = Asc(encodedString.Substring(i - 1, 1))
char2 = Asc(encodedString.Substring(i, 1))
If char1 = 96 Then char1 = 32
If char2 = 96 Then char2 = 32
decodedstring = decodedstring & Chr(((char1 - 32) * 4) + (Convert.ToInt16((char2 - 32) \ 16)))
char1 = Asc(encodedString.Substring(i, 1))
char2 = Asc(encodedString.Substring(i + 1, 1))
If char1 = 96 Then char1 = 32
If char2 = 96 Then char2 = 32
decodedstring = String.Concat(decodedstring, Chr(((char1 Mod 16) * 16) + (char2 - 32) \ 4))
char1 = Asc(encodedString.Substring(i + 1, 1))
char2 = Asc(encodedString.Substring(i + 2, 1))
If char1 = 96 Then char1 = 32
If char2 = 96 Then char2 = 32
decodedstring = String.Concat(decodedstring, Chr(((char1 Mod 4) * 64) + (char2 - 32)))
Next
Return decodedstring
End Function
Public Function uuEncode(ByVal decodedString As String) As String
Dim encodedstring As String
Dim x As Long = decodedString.Length
Dim i As Long
Dim char1 As Double
Dim char2 As Double
If x Mod 3 <> 0 Then
Dim temp As String = New String(Chr(0), 3 - x Mod 3)
encodedstring = String.Concat(encodedstring, temp)
End If
For i = 1 To x Step 3
char1 = Asc(decodedString.Substring(i - 1, 1))
If char1 = 96 Then char1 = 32
encodedstring = String.Concat(encodedstring, Chr(char1 \ 4 + 32))
char1 = Asc(decodedString.Substring(i - 1, 1))
char2 = Asc(decodedString.Substring(i, 1))
If char1 = 96 Then char1 = 32
If char2 = 96 Then char2 = 32
encodedstring = String.Concat(encodedstring, Chr((((char1 Mod 4) * 16)) + (char2 \ 16 + 32)))
char1 = Asc(decodedString.Substring(i, 1))
char2 = Asc(decodedString.Substring(i + 1, 1))
If char1 = 96 Then char1 = 32
If char2 = 96 Then char2 = 32
encodedstring = String.Concat(encodedstring, Chr((((char1 Mod 16) * 4)) + (char2 \ 64 + 32)))
char1 = Asc(decodedString.Substring(i + 1, 1))
If char1 = 96 Then char1 = 32
encodedstring = String.Concat(encodedstring, Chr((((char1 Mod 64) + 32))))
Next
Return encodedstring
End Function
End Class