Different encryption results for different services arise for obvious reasons, differences in implementations. There is an encryption standard ( PDF document ), but in its implementation, some parts of the algorithm can be omitted or made in their own way. Here article on Habré about implementation of AES-128 on Phyton as an example. If you read the article, then in its conclusion, the author directly says that there is a nuance with the encryption of the "tail" of the block, if it is less than 16 bytes, and tells about how he acted. Another author of the implementation of the same algorithm may well act differently and process the "tail" somehow differently, and in the end we will get what it would seem, 2 implementations of the same algorithm "make friends" will not work. And this is just one example of these differences and the likely cause of your described problem.
On the other hand, I am somewhat confused by the fact that you yourself say that there is
desktop application for people who do not have access to the network.
So why are you trying to work with online services, if the desktop client still does not have access to the network?
In your situation, it seems to me, the solution would be to use the same implementation for the web application and for the desktop.
How exactly this will be done is a different question. And the first thing that comes to mind is the implementation through a DLL, which will be used both there and there (if it is technically possible to tie the DLL to your web application and pull the encryption functions from it).
Or we take a ready-made implementation of the encryption algorithm in one of the languages ​​designated by you (and at least the same example on Python following the link above) and meticulously, methodically copy it into another language (Delphi). And even then, it seems to me that, just like that, there will be no guarantee of full compatibility, for example, due to differences in the implementation of types or features of working with memory.
The third option could be to use another, more "friendly" algorithm, or use your own encryption mechanism, which only you know). Or, in general, use a different way of working with data ( [irony on] data transfer in a password-protected archive 7z [irony off] ).