'libs = ByteConverter
Public Sub GenerateToken
Dim text As String = Rnd(1, 1000000000)
Dim Array1 As List = Array As Int(1382640238, 1684104556, 1701069673, 1885889906, 1299145829, 1298492783, 1920553844, 1919246701)
Dim Array2 As List = Array As Int(825438784, 1935959604, 892749397, 1663718965) 'uint don'n exist in b4x
Dim list, list2 As List
list.Initialize
list2.Initialize
Dim b As ByteConverter
Dim java As JavaObject
For i = 0 To Array1.Size - 1
Dim bytes As List = b.IntsToBytes(Array As Int(Array1.Get(i)))
java.InitializeStatic("java.util.Collections").RunMethod("reverse", Array(bytes))
list.AddAll(Array(bytes))
Next
For j = 0 To Array2.Size - 1
Dim bytes2 As List = b.IntsToBytes(Array As Int(Array2.Get(j)))
' Log(bytes2)
java.InitializeStatic("java.util.Collections").RunMethod("reverse", Array(bytes2))
' Log(bytes2)
list2.AddAll(Array(bytes))
Next
Log(list2)
Dim inArray() As Byte
inArray = Encrypter(text, list, list2)
Dim value As String = BytesToString(inArray, 0, inArray.Length, "UTF8")
Log(value)
'["s"] = text
'["c"] = value
End Sub
Private Sub Encrypter(randomst As String, array1() As Byte, array2() As Byte) As Byte()
If randomst = Null Or randomst.Length <= 0 Then
Log("plainText")
Return Null
End If
If array1 = Null Or array1.Length = 0 Then
Log("Key")
Return Null
End If
If array2 = Null Or array2.Length = 0 Then
Log("IV")
Return Null
End If
' Dim aes As AES
' aes.Initialize("AES")
' aes.Key = array1
' aes.IV = array2
' Dim transform As B4XCipher
' transform.Initialize("AES", aes.Key, aes.IV, False)
Dim memoryStream As OutputStream
memoryStream.InitializeToBytesArray(0)
Dim stream As OutputStream
stream.InitializeToBytesArray(0)
Dim array4() As Byte = memoryStream.ToBytesArray
stream.WriteBytes(array4, 0, array4.Length)
Dim streamWriter As TextWriter
streamWriter.Initialize(stream)
streamWriter.Write(randomst)
streamWriter.Close
stream.Close
Return memoryStream.ToBytesArray
End Sub