Version définitive en pure Xojo, pour créer des clés allez par exemple sur Online tool to format private key. par exemple…
Public Function CryptDecrypt(Mode As integer, datas As MemoryBlock) As String
// 0 encrypt , 1 Decrypte
Var privateKey As String
Var publicKey As String
Var bmessage As MemoryBlock
Var encryptedData As MemoryBlock
Var decryptedData As MemoryBlock
privateKey = "30820275020100300D06092A864886F70D01010105000482025F3082025B02010002818100BCB6CE38593CBE327AA4F278845222F9F57C64DCB09F2D974796DC1C9D4433D6B8212BFF210CD35483691114CB7D3DC22C7E1972B3B9989042DC8E0E7D37744A7239D35586A54C66FC29692244337848809F0FB1102813371DE15BDA6AD04FE3080AA8A173B213D957FE4539ACD0D558CAEFBAD8BC9EC3D67774B02EAA5A23F70201110281801BC087BCFE107652B7AED85D04666E8E2BA15A207453A4D27B78114F808A079F938C685A3990F1E6C807EBEC78471FAB9D219A54A1F5A57EA06BBA89A900A028CFA16F9358C93229775ADC8292DB2CC2FBC4DC047436A7D92A07F0D681CE8F4BAED4EEB184AEB76C5861DE5DF3969D701A082812F5A1AD281170F915152DC5D9024100C19AF7B8163B718381C1094F401697824E27457D480BAE8CEAA41F3D4591145D4CB9D0B0E265D03ABB01D3C5ADC07011A482B29A794EF4A672C71037F25067F9024100F9884B4D14AB52964ECB5127EA4A7D31E8D6BEE24B7588E57BD40A1DB28F6D1CB00F4D9FD7DB6457772FBC8EB9DD03800F025E23BD0468EC5AE09BCDC19F476F024100B6377FBC5128E34E983D35F03C517F89B2F7C8EE61ECE084A09A77C1326A6D84FCEB1EC498D84B8291E39A23765AC3D45E992091631D227E8A24C3F86B96F871024100A1764ED785D8447F602934833D3F41F31E3099A17C1EE01C04D47F04283EB00380FAD7DFE6066E1A7A4C10989661D516A04CD380895D34D52BBE82EE8C58010B02406E2EEB1A54D30295F1CE096413DCCE3A3AEAFBA904785B3E1BB59303ADD84F6AEEFEE017A5327DBCD994C3305D7CE9D57827D93929433E4EA8C8C23E00CA801D"
publicKey = "30819D300D06092A864886F70D010101050003818B0030818702818100BCB6CE38593CBE327AA4F278845222F9F57C64DCB09F2D974796DC1C9D4433D6B8212BFF210CD35483691114CB7D3DC22C7E1972B3B9989042DC8E0E7D37744A7239D35586A54C66FC29692244337848809F0FB1102813371DE15BDA6AD04FE3080AA8A173B213D957FE4539ACD0D558CAEFBAD8BC9EC3D67774B02EAA5A23F7020111"
Select Case Mode
Case 0 // Encrypt
bmessage = datas
encryptedData = Crypto.RSAEncrypt( bmessage, publicKey )
Return EncodeBase64(encryptedData)
Case 1 // Now decrypt
encryptedData = DecodeBase64(datas)
If encryptedData <> Nil Then
decryptedData = Crypto.RSADecrypt( encryptedData, privateKey )
End If
Return decryptedData
End Select