Python模組擴充套件之AES演算法

2021-07-16 15:10:36 字數 993 閱讀 7531

硬體加密快於軟體加密

編譯加密快於指令碼加密

所以基於硬體不可能,指令碼又太慢的情況下,我們就開始用c語言寫python的模組擴充套件

寫的方法網上有很多,我就不一一贅述了

主要想實現的功能就是通過python向模組中傳入乙個字串和乙個金鑰

然後解密的時候再根據金鑰解密,我採用的aes是256bit的金鑰。。。也是最大金鑰長度

初始金鑰長32bit,每次加密的明文長16bit,然後我們開始

選擇aes的時候我看了python著名的加密庫pycrypto的源**,按理來說,使用這個現成的庫會方便很多,但是,這個庫並不在pip中,所有安裝配置也是比較麻煩,所有我就想寫乙個python的模組擴充套件,直接從本地中匯入模組,這樣配置的時候只要這個擴充套件.so檔案在同乙個目錄下,就可以正常工作了。

然後選擇256bit的加密強度是考慮到工程的向後發展,畢竟現在aes也是有有效的攻擊手段了,所有只好選用最強的加密方式。

然後我也看了很著名的aes開源專案

tiny-aes128-c

但是他的加密強度只達到了128bit,所有也不能用

最後選擇了乙個寫的比較好的aes演算法這裡是作者的github

aes-256

然後我改了一下形成python的擴充套件模組

其中的難點就是python模組的傳入資料只能是int,或者string再或者其他什麼鬼型別,就是沒有陣列

然後我們就只好通過python向模組中傳入字串==,再通過c**的處理,填入陣列中計算加密

然後這個處理有點變扭,也是學藝不精吧,我先是寫入乙個檔案中,再從檔案的stream流中一位元組一位元組讀取,然後填入陣列中

然後就是正常的加密解密

python-aes-module

python擴充套件模組開發

python.h檔案 此檔案是python c api的入口檔案,所有api都包含在此檔案裡面 py 和 py python c api的方法與變數字首,在 中盡量不要使用此字首,避免混亂 pyobject python物件,包含引用計數與物件指標,所以的輸入輸出都通過此物件 bool 布林型別,c...

python擴充套件模組 Cython

python 可以直接呼叫c模組。這些c模組可以是通用的c庫或專門為python工作的庫。cython生成第二種型別的模組 與python內部對話的c庫,可以與現有的python 繫結在一起。通過使用cython可以加速python程式。cython檔案字尾為 pyx 作為新手,我是通過anacon...

python及拓展版 python擴充套件模組

一 擴充套件模組 影像擴充套件模組 pil 單獨安裝 影像擴充套件模組需 安裝pil v1.16 與python 版本對應 安裝完畢後呼叫方式為 import image 注意首字母大寫!注意路徑字串的處理 row,col im.size 獲取影像的尺寸 聲音引擎 pytts 擴充套件模組 單獨安裝...