herrDeng網內搜尋

自訂搜尋

Ads

2022年5月22日 星期日

AES 256文字加密python實作


  1. print('安裝密碼學套件pycryptodome,使用AES256-CBC加密')
  2. !pip install pycryptodome
  3. from Crypto.Cipher import AES
  4. from Crypto.Random import get_random_bytes
  5. from Crypto.Util.Padding import pad, unpad
  6. def printHex(xx):
  7. for x in xx:
  8. print("%02x" %(x), end=" ")
  9. print()
  10. """產生密鑰secret key與iv"""
  11. key = get_random_bytes(256//8)
  12. printHex(key)
  13. iv =get_random_bytes(AES.block_size)
  14. printHex(iv)
  15. aes = AES.new(key, AES.MODE_CBC, iv)
  16. """加密"""
  17. plain=input('請輸入你要加密的文字:\n')
  18. m=plain.encode('utf-8')
  19. %time cc=aes.encrypt(pad(m, AES.block_size))
  20. printHex(cc)
  21. """要解密了"""
  22. aes=AES.new(key, AES.MODE_CBC, iv)#解密時要重新取得aes
  23. %time p1=aes.decrypt(cc)
  24. printHex(p1)
  25. p2=unpad(p1, aes.block_size)
  26. printHex(p2)
  27. print(m==p2)
  28. print(p2.decode('utf-8'))

沒有留言:

Related Posts Plugin for WordPress, Blogger...

熱門文章