fork download
  1. from cryptography.hazmat.primitives import hashes, serialization
  2. from cryptography.hazmat.primitives.asymmetric import padding
  3. from cryptography.hazmat.backends import default_backend
  4. import base64
  5.  
  6. # Your plaintext
  7. plaintext = "20260225054200Aa123456"
  8.  
  9. # HKEX Public Key
  10. public_key_pem = """-----BEGIN PUBLIC KEY-----
  11. MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt68LZ9gaZGKsJJ0ipbtk
  12. KHKarXSwElY2hZikQTa+9YZ6LlOQFA+HLkk/s9CpZsMBenibvENl7Qg8/turgKr7
  13. vwfPDf6cIp05cApxwSFsEQhlEGulAuG6fo3IdtWS65w9eHWKIjYaSLxkn0OPxcKu
  14. 86OWo8rGutq3gtB6f1tjNF31D8TpYvYB+H1fJgCz2fckTg4oocFr8iWtti+ZpnZD
  15. zafJ8qblT3Dy9gHptabRj2d9FZR9BfPeziYo/aLqSmo0psVvA1PkG0H6MEuWZfN2
  16. dHQRmka3i/CeCrGr/j/gaULBZg7TOsJdMzG6e7AP/MnfSFrgkIUSoDkKUvGNA616
  17. QwIDAQAB
  18. -----END PUBLIC KEY-----"""
  19.  
  20. # Load the public key
  21. public_key = serialization.load_pem_public_key(
  22. public_key_pem.encode(),
  23. backend=default_backend()
  24. )
  25.  
  26. # Encrypt using RSA with OAEP padding
  27. encrypted = public_key.encrypt(
  28. plaintext.encode('utf-8'),
  29. padding.OAEP(
  30. mgf=padding.MGF1(algorithm=hashes.SHA256()), # MGF1 with SHA-256
  31. algorithm=hashes.SHA256(), # OAEP hash algorithm
  32. label=None # Optional label (usually None)
  33. )
  34. )
  35.  
  36. # Convert to Base64
  37. result = base64.b64encode(encrypted).decode('ascii')
  38.  
  39. print("Input:", plaintext)
  40. print("OAEP Result:", result)
  41. print("Length:", len(result), "characters")
Success #stdin #stdout 0.12s 21256KB
stdin
Standard input is empty
stdout
('Input:', '20260225054200Aa123456')
('OAEP Result:', u'TTBLgmE3L1NO1yp/0777tJ2TJ6rFMJd7yBlHbfvl2lHWvvolmqToHA86zkDJ84pSCzPKtto9mG+AqnIX1LCGuqFZYzaGu5ZepI/HPoMvpgtFTeUe/x5rCbXZA4EQghbueHKn/h5UaqIrcPlGmixZVcpSwD0fwM2oUrh5wOKewyiYIno7GHwz/cduCbsZvGbB1+SiQwLtCgYcOSSguXjwKhafs0+/OAE1YFwg7eYLbiwxuvIYJ4eEl6FNXgE56qUZ8rHX3Jqeq/f1Ree1S+9Snyk6SEmqmPQXf1Y0fYN2XLjSBZYZpE6LKQr+N/Yg9B5ePqYkxDi82D8umVpDUoYpaQ==')
('Length:', 344, 'characters')