日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

趣学python3(45)--调用C库-加解密

發布時間:2025/3/12 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 趣学python3(45)--调用C库-加解密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cryptography庫既包括高級規則,也包括普通密碼算法(如對稱密碼、消息摘要和關鍵派生函數)的低級接口。

$ pip install cryptography
例如,用密碼學的高層對稱加密方式加密:

from cryptography.fernet import Fernet key = Fernet.generate_key() f = Fernet(key) token = f.encrypt(b"hello,world!") print token print key '...' print f.decrypt(token)

gAAAAABbzaV91tfQiIYclT05Kb30uA6-XDKsp13jHx7lpIvML3NHCtJCxqTIgArIqQgTocnsBanR51vDkeh5NcDkN_B2kL2bDA==
tbpwFLqSZFa6Tufae7JW5gqrxGPQFtRCrfl-gyDIuiw=
hello,world!
AES :

import osfrom cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modesfrom cryptography.hazmat.backends import default_backendfrom cryptography.hazmat.primitives import paddingpadder = padding.PKCS7(128).padder()backend = default_backend()key = os.urandom(32)iv = os.urandom(16)cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=backend)encryptor = cipher.encryptor() padded_data = padder.update(b"liuxing") padded_data += padder.finalize() print padded_data ct = encryptor.update(padded_data) + encryptor.finalize() decryptor = cipher.decryptor() decryptorData=decryptor.update(ct) + decryptor.finalize() unpadder = padding.PKCS7(128).unpadder() data = unpadder.update(decryptorData) data + unpadder.finalize() liuxing

Out[22]:‘liuxing’

#!/usr/bin/env python2# -*- coding: utf-8 -*-import osfrom cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modesfrom cryptography.hazmat.backends import default_backendfrom cryptography.hazmat.primitives import paddingpadder = padding.PKCS7(128).padder()backend = default_backend()key = os.urandom(32)iv = os.urandom(16)cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=backend)encryptor = cipher.encryptor()messages = raw_input("Please input your message: ")padded_data = padder.update(messages )padded_data += padder.finalize()print padded_datact = encryptor.update(padded_data) + encryptor.finalize()decryptor = cipher.decryptor()decryptorData=decryptor.update(ct) + decryptor.finalize()unpadder = padding.PKCS7(128).unpadder()data = unpadder.update(decryptorData)data + unpadder.finalize()

Please input your message: hello, world,I am a teacher.
hello, world,I am a teacher.
Out[24]:
‘hello, world,I am a teacher.’
python3:

#!/usr/bin/env python2 # -*- coding: utf-8 -*-import os from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import padding padder = padding.PKCS7(128).padder() backend = default_backend() key = os.urandom(32) iv = os.urandom(16) cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=backend) encryptor = cipher.encryptor() messages = input("Please input your message: ") messages=bytes(messages,"utf-8") padded_data = padder.update(messages ) padded_data += padder.finalize() print(padded_data) ct = encryptor.update(padded_data) + encryptor.finalize() decryptor = cipher.decryptor() decryptorData=decryptor.update(ct) + decryptor.finalize() unpadder = padding.PKCS7(128).unpadder() data = unpadder.update(decryptorData) print(data + unpadder.finalize())

總結

以上是生活随笔為你收集整理的趣学python3(45)--调用C库-加解密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。