RSA加解密工具的編碼實現

RSA加解密工具的編碼實現

Python具有豐富和強大的庫。它常被昵稱為膠水語言,能夠把用其他語言製作的各種模塊很輕鬆地聯結在一起,本次工具的開發我們就採用Python來完成代碼的實現。

1.1 工具的分析和設計

工具可以用於對文件進行加密和解密處理。一個加密軟體應該包括以下功能模塊。

圖2 加、解密流程示意圖

基本功能

(l)用戶可以定存於磁碟上的任意文件,作為明文進行加密。

(2)密鑰對可以由用戶隨意輸入或者隨機產生,供用戶自己選擇使用。在執行加

密操作時,程序隨機產生密鑰來使用。解密操作時則由用戶自己輸入解密密鑰。

(3)可以使用用戶輸入的密鑰在對文件進行加密得到密文或解密運算得到原來的文件。

使用本軟體時,使用者可以按照以下步驟進行。

(l)利用工具產生一對密鑰。

(2)對加密密鑰進行處理並妥善保存,把公開密鑰通過郵件或電話等公開渠道告知發送者。

(3)發送者可以利用公開密鑰對文件進行加密,把加密後的文件傳遞給接收者。

(4)接收者可以使用保存的秘密密鑰對文件進行解密,得到原文件。

由上面的分析可以畫出如圖2的加、解密流程示意圖。

1.2 工具編碼實現

整個工具代碼分為四個模塊,ZIntMath、ZPrime、ZRSA、RSAtest

(1) ZIntMath主要是封裝一些用於數學運算的方法

(2) ZPrime主要是素數的測試和質因子分解的演算法

(3) ZRSA描述的是RSA加解密演算法

(4) RSAtest,主要是調用上邊三個模塊的演算法進行加密和解密


推薦閱讀:

TAG:RSA加密 | 編碼 | 加密 |