Hello,
After looking for some days the right way to decrypt and check via my API (in ASP vbscript) from a remote server, a string sent by poststring from my APP and encrypted with AES 128bits with key and iv specific ,
I can share my result with you :
App Side Sub :
and server side in ASP (vbscript) :
Im using Encryption library instead B4XEncryption library because
i need to use the good key and iv string Server Side for checking
if it may interest someone or an idea to improve the process...
After looking for some days the right way to decrypt and check via my API (in ASP vbscript) from a remote server, a string sent by poststring from my APP and encrypted with AES 128bits with key and iv specific ,
I can share my result with you :
App Side Sub :
B4X:
Sub EncryptTextCipher(text As String, akey As String, aniv As String) As String
Dim data() As Byte
Dim iv() As Byte
Dim su As StringUtils
Dim bc As ByteConverter
Dim thestr As String = text
Dim kg As KeyGenerator
kg.Initialize("AES")
Dim keystr As String = akey 'pass there your 16byte key
kg.KeyFromBytes(bc.StringToBytes(keystr, "UTF8"))
Dim ivstr As String = aniv 'pass there your 16byte iv
iv = bc.StringToBytes(ivstr, "UTF8")
Dim c As Cipher
c.Initialize("AES/CBC/PKCS5Padding")
c.InitialisationVector = iv
data = bc.StringToBytes(thestr, "UTF8")
data = c.Encrypt(data, kg.key, True)
Return su.EncodeBase64(data)
End Sub
and server side in ASP (vbscript) :
B4X:
Function decryptAes(str)
set obj= CreateObject("System.Security.Cryptography.RijndaelManaged")
set utf8 = CreateObject("System.Text.UTF8Encoding")
ekey = "****************" 'pass there the same 16byte key
eiv = "****************" 'pass there the same 16byte iv
obj.BlockSize = 128
obj.Key = utf8.GetBytes_4(ekey)
obj.IV = utf8.GetBytes_4(eiv)
obj.Padding = 5
set decryptor=obj.CreateDecryptor()
ChaDecypt = Base64ToByte(str)
byted=decryptor.TransformFinalBlock((ChaDecypt),0,lenb(ChaDecypt))
ChaDecypt = utf8.getString((byted))
decryptAes = ChaDecypt
end function
Function Base64ToByte(ByVal B64Str)
Dim MsXML, MsNode
Set MsXML = CreateObject("Msxml2.DOMDocument.3.0")
Set MsNode = MsXML.CreateElement("base64")
MsNode.dataType = "bin.base64"
MsNode.text = B64Str
Base64ToByte = MsNode.nodeTypedValue
Set MsNode = Nothing
Set MsXML = Nothing
End Function
Im using Encryption library instead B4XEncryption library because
i need to use the good key and iv string Server Side for checking
if it may interest someone or an idea to improve the process...
Last edited: