2023年10月1日 星期日

用Python玩加密和解密

以下Python範例是參考:在Python中實現加密解密字串的多個方法

使用simplecrypt模組需要先安裝下列套件:

  1. pip3 install pycryptodome
  2. pip3 install simple-crypt --no-dependencies

範例一、使用simplecrypt模組

1
2
3
4
5
6
7
8
from simplecrypt import encrypt, decrypt
密碼 = '1234'
明文 = '虎尾鎮'
密文 = encrypt(密碼,明文)
print("密文:")
print(密文)
print("解密:")
print((decrypt(密碼,密文)).decode('utf-8'))

執行結果:
密文:
b"sc\x00\x02\xc4U\xa9.f\x82 \xafi|\xccq'\xafC\x8d\xcd\xf2\xc9\x1bY\xdaH\xdd4\xac\xa0\x90\xd8\xcd\xe32\xb0\xfe\xd2\x19\xd7a;\xc9\xa6>\x1d\xd3\xbc\x13\xcd\xe6{\xf3=\xf48\x0ef\xf4 \x8eOn\xb1Q6\xcdY\xbc\xee\xd05m\xa9\x9bt"
解密:
虎尾鎮

使用cryptocode套件,需先安裝
pip install cryptocode

範例二、使用cryptocode套件

1
2
3
4
5
6
7
8
9
import cryptocode
密碼 = 'abcd'
原文 = '虎尾鎮'
密文 = cryptocode.encrypt(原文,密碼)
明文 = cryptocode.decrypt(密文,密碼)
print("密文:")
print(密文)
print("解密:")
print(明文)

執行結果:
密文:
VwSx9yFyqo76*PQa0/eHkPBg2hNtuf39WkA==*t5NwLhneE+/dtfNvtrcBJA==*+1EJ1g9Taa84//gXLbi54A==
解密:
虎尾鎮

使用RSA方法要先安裝下列套件:
pip install rsa

範例三、使用RSA方法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import rsa
#產生公鑰和私鑰
公鑰,私鑰=rsa.newkeys(512)
原文 = '虎尾鎮'
print("密鑰:")
print('公鑰:', 公鑰)
print('私鑰:', 私鑰)
#加密
密文 = rsa.encrypt(原文.encode(),公鑰)
#解密  
明文 = rsa.decrypt(密文, 私鑰).decode()
print("密文:")
print(密文)
print("明文:")
print(明文)

執行結果:
密鑰:
公鑰: PublicKey(8594592785784686509010260682839316947667262798816096978717012026389533616622284117764985601422125831484792403705327792999140721708190961855402115192994553, 65537)
私鑰: PrivateKey(8594592785784686509010260682839316947667262798816096978717012026389533616622284117764985601422125831484792403705327792999140721708190961855402115192994553, 65537, 2572594514224608926976429861227381182574556270875617962852917053293307304634094336859291760891370608561922146973085512585886128568266724595957967068596561, 6804032571681137634075662172366154318044265515947545917337454507539443706876324829, 1263161617061621146332651862172501067980828672547394642120143692112631757)
密文:
b".d_@\xc3V%\t\xc2\xfb\x98'S*!\xe1\xbb\xf2\x13\x19\x87\x8ekt\xdeD6\xa5~\xdf\x9c9`\x80\x02'\xeb\x17\x8e\x03\xcf\xcaN!Z\xbe\xfd\xf5\xc1?\xd7\x88\xb3\x1c\t\xfb\x05\xce\xdf\xb3A\xfd\x95\x01"
明文:
虎尾鎮

沒有留言:

張貼留言