4th Street Bar Hive-Bar

Hive-Bar Powered by Hive beta-fdb5b5b

Community post

introduction to cryptography; demo 1

This first demo reproduces the minimal example from https://cryptography.io/en/latest/fernet/

Here is the code:

  from cryptography.fernet import Fernet

  key = Fernet.generate_key()
  f = Fernet(key)
  token = f.encrypt(b"A really secret message. Not for prying eyes.")

Running this code snippet generates a key "key=Fernet.generate_key()" that is used to encrypt the message "A really secret message. Not for prying eyes".

The token is the encrypted message:
token = str.encode('gAAAAABkA82hbypi9ImmSnP_MGiqkuAHY-8fSsBdnl4qd2or6cQF_6stRh2RDHEvNGkuxQ9sc4nC0HKl9_f1Ax5LOPNaWFJUOjVgWt5ix0EzdcfrJJxslBd3f2GyOPOawJmdHDRwTO4N', 'utf-8')

Try decoding it with this key:
key = str.encode('LB83JBWFeETaE7NoBgJme0tOBDbV65lLa1H23YDQ6M0=', 'utf-8')

Did you notice the lowercase b used for the message and the key? The lowercase b tells Python that the data is coded in binary (1s and 0s).

Fernet is a symmetric encryption algorithm. This means that the same key is used to encrypt and decrypt the message.

Python snippet to decode the message:

New variable names are used so that we don't over-write the values of the variables already defined (key, token, f):

  key2 = str.encode('LB83JBWFeETaE7NoBgJme0tOBDbV65lLa1H23YDQ6M0=', 'utf-8')
  token2 = str.encode('gAAAAABkA82hbypi9ImmSnP_MGiqkuAHY-8fSsBdnl4qd2or6cQF_6stRh2RDHEvNGkuxQ9sc4nC0HKl9_f1Ax5LOPNaWFJUOjVgWt5ix0EzdcfrJJxslBd3f2GyOPOawJmdHDRwTO4N', 'utf-8')

  f2 = Fernet(key2)
  message = f2.decrypt(token2)
  print(message)

Output:
b'A really secret message. Not for prying eyes.'

I am new to ecency, please let me know if you have any questions, comments, or constructive criticisms. Thanks!

0 upvotes $0.00

Replies (0)

Conversation

No replies yet

Replies will appear here as people join the conversation.

Review before signing

Posting as . Signing with . Keychain permission: Posting. Hive Keychain will ask you to approve this action next.


  
Technical details

Operation fingerprint: