-
Python駭客密碼:加密、解密與破解實例應用:學習Python程式設計和密碼的破解技巧
-
點閱:470
287人已收藏
- 譯自:Cracking codes with Python
- 作者: Al Sweigart作 , H&C譯
- 出版社:碁峰資訊
- 出版年:2021
- ISBN:9789865020804
- EISBN:9789865028992 PDF
- 格式:PDF,JPG
- 附註:附錄: 偵錯Python程式碼
學習Python程式設計和密碼的破解技巧
本書教您學習製作與破解密碼的相關演算法知識,以及如何在Python中編寫程式來實作和傳送機密訊息!
本書前幾章會教您Python基礎的程式設計知識和技巧,接著學習各種經典傳統密碼的相關知識原理,以及怎麼使用這類傳統密碼進行加密解密,並編寫、實作、測試和破解程式。本書所講述的包括反轉密碼、凱撒密碼、換位密碼、仿射密碼、簡易替換密碼、維吉尼亞密碼等,最後還有公鑰密碼,這個保護著目前線上交易加密應用,像數位簽章、email和比特幣等都有使用的技術。
書中所有範例程式都會完整列出,並逐行解說其Python技巧和運作原理。讀完本書,您不僅學會怎麼在Python中編寫程式碼,您還會有很多完整的程式實例可實證您的學習成果!
本書內容還包括:
‧教您結合迴圈、變數和流程控制等技巧在實際的程式上應用
‧教您使用字典攻擊馬上檢測解密訊息是否為英文或只是亂碼
‧教您製作測試程式,用來確保加密和解密的處理是正確無誤的
‧以完整的仿射密碼實例教您活用模除運算等數學概念來加密訊息
‧教您活用暴力破解法與頻率分析等破解技術
從範例程式中動手實作與體會是最好的學習方式,本書有完整眾多的實例能讓您能夠享受學習Python與密碼學的樂趣。
- 簡介(第1頁)
- 適合閱讀本書的讀者(第2頁)
- 本書內容(第3頁)
- 如何使用本書(第5頁)
- 下載與安裝Python(第7頁)
- 下載pyperclip.py(第8頁)
- 開啟IDLE(第8頁)
- 總結(第10頁)
- 第 1 章 製作紙上的密碼工具(第11頁)
- 什麼是密碼學?(第12頁)
- 代碼與密碼(第13頁)
- 凱撒密碼(第14頁)
- 為什麼雙重加密不可行(第19頁)
- 總結(第20頁)
- 練習題(第20頁)
- 第 2 章 在互動式Shell 中程式設計(第23頁)
- 一些簡易的數學表示式(第24頁)
- 以變數來儲存值(第28頁)
- 總結(第32頁)
- 練習題(第32頁)
- 第 3 章 字串與編寫程式(第35頁)
- 使用字串值來處理文字(第36頁)
- 使用print()函式印出值(第42頁)
- 印出轉義字元(第43頁)
- 單引號與雙引號(第44頁)
- 在IDLE 的File Editor 中編寫程式(第45頁)
- 「Hello, world!」的原始程式碼(第46頁)
- 使用Online diff tool 檢查程式碼(第47頁)
- 使用IDLE 存取您的程式(第48頁)
- 「Hello world!」程式的運作原理(第50頁)
- 總結(第52頁)
- 練習題(第53頁)
- 第 4 章 反轉密碼(第55頁)
- 反轉密碼程式的原始程式碼(第56頁)
- 反轉密碼程式的執行範例(第56頁)
- 設計注釋與變數(第57頁)
- 找出字串的長度(第58頁)
- while 迴圈簡介(第59頁)
- 利用input()輸入來改進程式(第67頁)
- 總結(第68頁)
- 練習題(第68頁)
- 第 5 章 凱撒密碼(第71頁)
- 凱撒密碼程式的原始程式碼(第72頁)
- 凱撒密碼程式的執行範例(第73頁)
- 匯入模組與設定變數(第74頁)
- 常數與變數(第75頁)
- for 迴圈陳述句(第76頁)
- if 陳述句(第78頁)
- in 和not in 運算子(第80頁)
- find() 字串方法(第81頁)
- 加密和解密符號(第82頁)
- 顯示和複製轉換後的字串(第85頁)
- 加密其他符號(第86頁)
- 總結(第86頁)
- 練習題(第87頁)
- 第 6 章 以暴力破解凱撒密碼(第89頁)
- 凱撒密碼破解程式的原始程式碼(第90頁)
- 凱撒密碼破解程式的執行範例(第91頁)
- 設定變數(第92頁)
- 以range()函式進行迴圈(第92頁)
- 解密訊息(第93頁)
- 使用字串格式化來編排密鑰和解密訊息(第95頁)
- 總結(第96頁)
- 練習題(第96頁)
- 第 7 章 使用換位密碼進行加密(第97頁)
- 換位密碼的運作原理(第98頁)
- 換位密碼程式的原始程式碼(第102頁)
- 換位密碼程式的執行範例(第103頁)
- 使用def 陳述句建立自己的函式(第103頁)
- 把密鑰和訊息當成引數傳入(第107頁)
- 串列資料型別(第107頁)
- 換位加密的演算法(第111頁)
- 擴增指定運算子(第113頁)
- 利用currentIndex 在message 字串中逐個字元移動(第114頁)
- join() 字串方法(第116頁)
- 返回值與返回陳述式(第116頁)
- __name__變數(第118頁)
- 總結(第119頁)
- 練習題(第120頁)
- 第 8 章 使用換位密碼進行解密(第121頁)
- 在紙上進行換位密碼的解密處理(第122頁)
- 換位密碼解密程式的原始程式碼(第123頁)
- 換位密碼解密程式的執行範例(第125頁)
- 匯入模組與設定main()函式(第125頁)
- 使用密鑰來解密訊息(第126頁)
- 呼叫main() 函式(第134頁)
- 總結(第134頁)
- 練習題(第135頁)
- 第 9 章 編寫程式來測試您的程式(第137頁)
- 換位密碼測試程式的原始程式碼(第138頁)
- 換位密碼測試程式的執行範例(第139頁)
- 匯入模組(第140頁)
- 建立偽隨機數(第140頁)
- 建立隨機字串(第142頁)
- 測試每個訊息(第148頁)
- 檢測密碼程式是否正確運作和結束程式執行(第148頁)
- 呼叫main()函式(第149頁)
- 測試執行這個測試程式(第150頁)
- 總結(第151頁)
- 練習題(第151頁)
- 第 10 章 加密和解密檔案(第153頁)
- 純文字檔(第154頁)
- 換位檔案密碼程式的原始程式碼(第155頁)
- 換位檔案密碼程式的執行範例(第156頁)
- 處理檔案(第157頁)
- 設定main()函式(第159頁)
- 檢測檔案是否存在(第160頁)
- 利用字串方法讓使用者輸入更有彈性(第161頁)
- 讀取輸入檔(第163頁)
- 計算加密或解密所花費的時間(第163頁)
- 寫入輸出檔(第165頁)
- 呼叫main() 函式(第165頁)
- 總結(第166頁)
- 練習題(第166頁)
- 第 11 章 以程式來偵測英文(第167頁)
- 電腦要如何理解英文字(第168頁)
- 偵測英文模組的原始程式碼(第170頁)
- 偵測英文模組的執行範例(第171頁)
- 說明指引與設定常數(第171頁)
- 字典資料型別(第172頁)
- 字典檔的實作處理(第177頁)
- 計算訊息中英文單字的數量(第179頁)
- 移除非英文的字元(第182頁)
- 偵測英文單字(第184頁)
- 總結(第187頁)
- 練習題(第188頁)
- 第 12 章 破解換位密碼(第189頁)
- 換位密碼破解程式的原始程式碼(第190頁)
- 換位密碼破解程式的執行範例(第191頁)
- 匯入模組(第192頁)
- 使用三重引號來處理多行字串(第192頁)
- 顯示破解訊息的結果(第193頁)
- 取得破解訊息(第194頁)
- 呼叫main() 函式(第197頁)
- 總結(第198頁)
- 練習題(第198頁)
- 第 13 章 仿射密碼所用的模算術模組(第199頁)
- 模算數(第200頁)
- 模除運算子(%)(第202頁)
- 找出計算最大公約數的因數(第202頁)
- 多重指定(第205頁)
- 使用歐幾里得演算法來尋找最大公約數(第206頁)
- 理解乘法密碼和仿射密碼的工作原理(第207頁)
- Cryptomath 模組的原始程式碼(第212頁)
- 總結(第213頁)
- 練習題(第214頁)
- 第 14 章 仿射密碼程式設計(第215頁)
- 仿射密碼程式的原始程式碼(第216頁)
- 執行仿射密碼程式的範例(第218頁)
- 設定模組、常數和main()函式(第218頁)
- 計算和驗證密鑰(第220頁)
- 編寫加密函式(第224頁)
- 編寫解密函式(第225頁)
- 產生隨機密鑰(第226頁)
- 呼叫main() 函式(第227頁)
- 總結(第228頁)
- 練習題(第228頁)
- 第 15 章 破解仿射密碼(第229頁)
- 仿射密碼破解程式的原始程式碼(第230頁)
- 仿射密碼破解程式的執行範例(第231頁)
- 設定模組、常數和main()函式(第232頁)
- 仿射密碼破解函式(第233頁)
- 呼叫main() 函式(第237頁)
- 總結(第237頁)
- 練習題(第238頁)
- 第 16 章 簡易替換密碼程式設計(第239頁)
- 簡易替換密碼的運作原理(第240頁)
- 簡易替換密碼程式的原始程式碼(第241頁)
- 簡易替換密碼程式的執行範例(第243頁)
- 設定模組、常數和main() 函式(第243頁)
- sort() 串列方法(第245頁)
- 包裝函式(第246頁)
- translateMessage()函式(第247頁)
- 產生隨機密鑰(第251頁)
- 呼叫main() 函式(第252頁)
- 總結(第252頁)
- 練習題(第253頁)
- 第 17 章 破解簡易替換密碼(第255頁)
- 使用單字模式來解密(第256頁)
- 破解過程總覽(第259頁)
- 單字模式模組(第260頁)
- 簡易替換密碼破解程式的原始程式碼(第261頁)
- 簡易替換密碼破解程式執行範例(第264頁)
- 設定模組與常數(第265頁)
- 利用正規表示式來搜尋字元(第265頁)
- 設定main() 函式(第266頁)
- 顯示破解結果給使用者看(第267頁)
- 建立密碼字母對映(第267頁)
- hackSimpleSub()函式(第277頁)
- 呼叫main() 函式(第282頁)
- 總結(第282頁)
- 練習題(第283頁)
- 第 18 章 維吉尼亞密碼程式設計(第285頁)
- 在維吉尼亞密碼中使用多個字母密鑰(第286頁)
- 維吉尼亞密碼程式的原始程式碼(第289頁)
- 維吉尼亞密碼程式的執行範例(第291頁)
- 設定模組、常數和main()函式(第291頁)
- 使用串列-新增-合併的流程來建立字串(第292頁)
- 訊息的加密和解密(第293頁)
- 呼叫main() 函式(第296頁)
- 總結(第296頁)
- 練習題(第297頁)
- 第 19 章 頻率分析(第299頁)
- 在文字中分析字母的出現頻率(第300頁)
- 比對字母出現的頻率(第302頁)
- 比對字母頻率程式的原始程式碼(第305頁)
- 把字母依照ETAOIN 順序存放(第307頁)
- 訊息中字母的計數(第308頁)
- 取得多元組的第1 個成員(第309頁)
- 依照頻率來排序訊息中的字母(第310頁)
- 計算訊息的頻率相符分數(第319頁)
- 總結(第320頁)
- 練習題(第320頁)
- 第 20 章 破解維吉尼亞密碼(第321頁)
- 以暴力法使用字典攻擊破解維吉尼亞密碼(第322頁)
- 維吉尼亞字典攻擊破解程式的原始程式碼(第322頁)
- 維吉尼亞字典攻擊破解程式的執行範例(第323頁)
- 關於維吉尼亞字典攻擊破解程式(第324頁)
- 使用卡西斯基檢驗找出密鑰長度(第324頁)
- 維吉尼亞密碼破解程式的原始程式碼(第330頁)
- 維吉尼亞密碼破解程式的執行範例(第336頁)
- 匯入模組與設定main()函式(第336頁)
- 找出重複序列(第337頁)
- 計算間距的因數(第340頁)
- 找出最有可能的密鑰長度(第344頁)
- 取得使用相同子密鑰加密的字母(第346頁)
- 使用可能的密鑰長度來進行解密(第348頁)
- 返回破解訊息(第356頁)
- 呼叫main()函式(第358頁)
- 修改破解程式的常數(第358頁)
- 總結(第359頁)
- 練習題(第360頁)
- 第 21 章 一次性密碼本密碼(第361頁)
- 不能破解的一次性密碼本密碼(第362頁)
- 總結(第367頁)
- 練習題(第367頁)
- 第 22 章 尋找與產生質數(第369頁)
- 什麼是質數(第370頁)
- 質數模組的原始程式碼(第372頁)
- 質數模組的執行範例(第374頁)
- 試除演算法的運作原理(第374頁)
- 實作試除演算法檢測(第376頁)
- 埃拉托斯特尼篩法(第377頁)
- 使用埃拉托斯特尼篩法生成質數(第379頁)
- 米勒-拉賓質數判定演算法(第380頁)
- 找出大型質數(第381頁)
- 生成大型質數(第382頁)
- 總結(第383頁)
- 練習題(第383頁)
- 第 23 章 生成公鑰密碼的公鑰(第385頁)
- 公鑰密碼學(第386頁)
- 驗證(Authentication)的問題(第388頁)
- 生成公鑰和私鑰的步驟(第390頁)
- 公鑰生成程式的原始程式碼(第391頁)
- 公鑰生成程式的執行範例(第393頁)
- 建立main() 函式(第394頁)
- 以generateKey()函式生成密鑰(第394頁)
- 使用makeKeyFiles()函式來建立密鑰檔(第397頁)
- 呼叫main()函式(第399頁)
- 混和密碼體制(第399頁)
- 總結(第399頁)
- 練習題(第400頁)
- 第 24 章 公鑰密碼程式設計(第401頁)
- 公鑰密碼的原理(第402頁)
- 公鑰密碼程式的原始程式碼(第410頁)
- 公鑰密碼程式的執行範例(第413頁)
- 設定程式(第415頁)
- 程式怎麼決定是要進行加密或解密的(第415頁)
- 使用getBlocksFromText()把字串轉換成區塊(第416頁)
- 使用getTextFromBlocks() 進行解密(第419頁)
- 編寫encryptMessage()函式(第421頁)
- 編寫decryptMessage()函式(第422頁)
- 從密鑰檔中讀取公鑰和私鑰(第422頁)
- 把加密內容寫入檔案中(第423頁)
- 從檔案解密訊息(第426頁)
- 呼叫main() 函式(第427頁)
- 總結(第428頁)
- 附錄 偵錯Python 程式碼(第431頁)
- Debugger 的操作方式(第432頁)
- 對反轉密碼程式進行偵錯處理(第434頁)
- 設定中斷點(第436頁)
- 總結(第438頁)
紙本書 NT$ 520
單本電子書
NT$
520
同分類熱門書