Crypter et décrypter un password dans les préférences

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


1 Like