-- 會員 / 註冊 --
 帳號:
 密碼:
  | 註冊 | 忘記密碼
站長推薦
NT定價: 580
優惠價:75435
NT定價: 560
優惠價:75420
NT售價: 495
NT售價: 395
NT售價: 175

3/22 新書到! 3/14 新書到! 3/9 新書到! 3/3 新書到!
C.G.Next購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUGRevit
PhotoShopCorelDrawIllustratorAutoCadMasterCamSolidWorksCreo
CC++Java遊戲程式Linux嵌入式PLCFPGAMatlabNuke
駭客資料庫Oracle搜索引擎影像處理FluentSPSSANSYSUnity
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
C#HadoopPythonstm32手機程式CortexLabviewAndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Python密碼學編程

( 簡體 字)
作者:[美] Al Sweigart 斯維加特類別:1. -> 程式設計 -> Python
譯者:
出版社:人民郵電出版社Python密碼學編程 3dWoo書號: 44910
詢問書籍請說出此書號!

有庫存
NT售價: 345

出版日:8/1/2016
頁數:324
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115424297
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
作者序:

譯者序:

前言:

內容簡介:

  Python是一種高級程序設計語言,因其簡潔、易讀及可擴展性日漸成為程序設計領域備受推崇的語言。同時,Python語言在算法領域也得到了很好的應用。
本書通過理論和實例相結合的方式介紹了多種加密算法。全書共分24章,由淺入深地介紹了與密碼學編程相關的各類基礎知識、編程技巧以及算法實現。除此之外,本書還提供了相應的源碼下載資源,以供讀者更好地進行探索和學習。
本書適合Python初學者和密碼學的初學者,也適合信息安全從業人員。
目錄:

第1章 制作紙質加密工具 1
1.1 密碼學是什么 1
1.2 代碼與加密法 2
1.3 制作紙質加密輪盤 2
1.4 虛擬加密輪盤 4
1.5 如何使用加密輪盤加密 4
1.6 如何使用加密輪盤解密 5
1.7 另一個加密法工具:St. Cyr滑條 6
1.8 A組練習 6
1.9 不用紙質工具做加密 7
1.10 B組練習 9
1.11 雙重強度加密 9
1.12 通過計算機編程進行加密 9
第2章 Pygame基礎知識 11
2.1 下載和安裝Python 11
2.1.1 Windows安裝步驟 11
2.1.2 OS X安裝步驟 12
2.1.3 Ubuntu和Linux安裝步驟 12
2.2 下載pyperclip.py 12
2.3 啟動IDLE 12
2.4 特色程序 13
2.5 行號和空格 14
2.6 本書的文本換行 14
2.7 在線跟蹤程序 15
2.8 使用在線比較工具檢查輸入的
代碼 15
2.9 復制粘貼文本 15
2.10 更多信息鏈接 15
2.11 編程和密碼學 16
第3章 Interactive Shell 20
3.1 一些簡單的數學知識 20
3.2 整數和浮點數 21
3.3 表達式 21
3.4 運算符順序 22
3.5 計算表達式 22
3.6 錯誤是可以接受的 22
3.7 A組練習 23
3.8 每個值都有一個數據類型 23
3.9 通過賦值語句把值存到變量里 23
3.10 重寫變量 24
3.11 使用多個變量 25
3.12 變量名 26
3.13 駝峰式大小寫 26
3.14 B組練習 26
3.15 總結——那我們什么時候開始
破譯 26
第4章 字符串和寫程序 28
4.1 字符串 28
4.2 使用+運算符的字符串連接 29
4.3 使用*運算符的字符串復制 30
4.4 使用print()函數輸出值 30
4.5 轉義字符 31
4.6 引號和雙引號 32
4.7 A組練習 32
4.8 索引操作 33
4.9 負索引 33
4.10 分片操作 34
4.11 空分片索引 35
4.12 B組練習 35
4.13 在IDLE的文件編輯器里寫程序 35
4.14 Hello World! 36
4.15 Hello World的源代碼 36
4.16 保存你的程序 37
4.17 運行你的程序 37
4.18 打開你保存的程序 38
4.19 “Hello World”程序如何工作 38
4.20 注釋 38
4.21 函數 39
4.22 print()函數 39
4.23 input()函數 39
4.24 結束程序 40
4.25 C組練習 40
4.26 總結 40
第5章 反轉加密 41
5.1 反轉加密 41
5.2 反轉加密程序的源代碼 41
5.3 運行反轉加密程序 42
5.4 用在線比較工具檢查你的源代碼 42
5.5 這個程序如何工作 43
5.6 len()函數 43
5.7 while循環簡介 44
5.8 布爾數據類型 44
5.9 比較運算符 45
5.10 條件 46
5.11 代碼塊 47
5.12 while循環語句 47
5.13 “增長”一個字符串 48
5.14 一步一步跟蹤程序 50
5.15 在我們的程序里使用input() 52
5.16 A組練習 52
5.17 總結 52
第6章 凱撒加密法 53
6.1 實現程序 53
6.2 凱撒加密程序的源代碼 53
6.3 運行凱撒加密程序 54
6.4 使用在線比較工具檢查你的
源代碼 55
6.5 A組練習 55
6.6 這個程序如何工作 55
6.7 使用import語句導入模塊 55
6.8 常量 56
6.9 upper()和lower()字符串方法 57
6.10 for循環語句 58
6.11 相當于for循環的while循環 59
6.12 B組練習 59
6.13 if語句 59
6.14 else語句 60
6.15 elif語句 60
6.16 in和not in運算符 61
6.17 find()字符串方法 62
6.18 C組練習 62
6.19 回到代碼 62
6.20 顯示和復制加密/解密之后的
字符串 64
6.21 加密非字母字符 65
6.22 總結 66
第7章 暴力破譯凱撒加密法 67
7.1 破譯加密 67
7.2 暴力破譯 67
7.3 凱撒加密法破譯程序的源代碼 68
7.4 運行凱撒加密法破譯程序 68
7.5 這個程序如何工作 69
7.6 range()函數 69
7.7 回到代碼 70
7.8 字符串格式化 72
7.9 A組練習 72
7.10 總結 72
第8章 使用換位加密法加密 73
8.1 換位加密法 73
8.2 A組練習 74
8.3 換位加密法加密程序 74
8.4 換位加密法加密程序的源代碼 75
8.5 運行換位加密法加密程序 76
8.6 這個程序如何工作 76
8.7 使用def語句創建你自己的函數 76
8.8 程序的main()函數 77
8.9 形參 78
8.10 對形參的修改只存在于函數
之內 79
8.11 全局作用域和本地作用域里的
變量 79
8.12 global語句 79
8.13 B組練習 81
8.14 列表數據類型 81
8.15 使用list()函數把區間對象轉換
成列表 82
8.16 重新賦值列表里的項 83
8.17 重新賦值字符串里的字符 83
8.18 列表的列表 83
8.19 C組練習 84
8.20 在列表上使用len()和in運算符 84
8.21 使用+和*運算符的列表連接和
復制 85
8.22 D組練習 85
8.23 換位加密算法 85
8.24 增強賦值運算符 88
8.25 回到代碼 88
8.26 join()字符串方法 90
8.27 返回值和return語句 91
8.28 E組練習 91
8.29 回到代碼 91
8.30 特殊的__name__變量 92
8.31 密鑰的大小和消息的長度 93
8.32 總結 93
第9章 使用換位加密法解密 94
9.1 在紙上使用換位加密法解密 94
9.2 練習A組 96
9.3 換位加密法解密程序 96
9.4 換位加密法解密程序的源代碼 96
9.5 這個程序如何工作 97
9.6 math.ceil()、math.floor()和round()函數 98
9.7 and和or布爾運算符 101
9.8 B組練習 102
9.9 真值表 102
9.10 and和or運算符可以簡化代碼 103
9.11 布爾運算符的運算順序 103
9.12 回到代碼 103
9.13 C組練習 105
9.14 總結 105
第10章 寫一個程序測試我們的程序 106
10.1 換位加密法測試程序的源代碼 106
10.2 運行換位加密法測試程序 107
10.3 這個程序如何工作 108
10.4 偽隨機數和random.seed()
函數 108
10.5 random.randint()函數 109
10.6 引用 110
10.7 copy.deepcopy()函數 112
10.8 A組練習 112
10.9 random.shuffle()函數 112
10.10 隨機打亂一個字符串 113
10.11 回到代碼 114
10.12 sys.exit()函數 114
10.13 測試我們的測試程序 115
10.14 總結 116
第11章 加密和解密文件 117
11.1 純文本文件 117
11.2 換位加密法文件加密程序的
源代碼 118
11.3 運行換位加密法文件加密程序 120
11.4 讀取文件 120
11.4.1 open()函數和文件對象 120
11.4.2 read()文件對象方法 120
11.4.3 close()文件對象方法 121
11.5 寫入文件 121
11.5.1 write()文件對象方法 122
11.6 這個程序如何工作 122
11.7 os.path.exists()函數 123
11.8 startswith()和endswith()字符串方法 123
11.9 title()字符串方法 124
11.10 time模塊和time.time()函數 125
11.11 回到代碼 126
11.12 A組練習 126
11.13 總結 127
第12章 通過編程檢測英文 128
12.1 計算機如何理解英文 128
12.2 A組練習 130
12.3 檢測英文模塊 130
12.4 檢測英文模塊的源代碼 130
12.5 這個程序如何工作 131
12.6 詞典和詞典數據類型 132
12.7 添加或修改詞典里的項 132
12.8 B組練習 133
12.9 在詞典上使用len()函數 133
12.10 在詞典上使用in運算符 133
12.11 在詞典上使用for循環 134
12.12 C組練習 134
12.13 詞典與列表之間的區別 134
12.14 在詞典上查找項比在列表上
更快 135
12.15 split()方法 135
12.16 None值 136
12.17 回到代碼 136
12.18 “除以零”錯誤 138
12.19 float()、int()和str()函數以及
整數除法 138
12.20 D組練習 139
12.21 回到代碼 139
12.22 append()列表方法 139
12.23 默認參數值 140
12.24 計算比例 141
12.25 E組練習 142
12.26 總結 143
第13章 破譯換位加密法 144
13.1 換位加密法破譯程序的源代碼 144
13.2 運行換位加密法破譯程序 145
13.3 這個程序如何工作 146
13.4 使用三引號的多行字符串 146
13.5 回到代碼 147
13.6 strip()字符串方法 148
13.7 A組練習 150
13.8 總結 150
第14章 取模運算與乘數加密法和
仿射加密法 151
14.1 噢,不,數學! 151
14.2 數學,噢耶! 151
14.3 取模運算(又名時鐘運算) 151
14.4 取模運算符% 152
14.5 A組練習 153
14.6 GCD:最大公約數(又名最大
公因數) 153
14.7 使用古氏積木(Cuisenaire rods)可視化因數和GCD 154
14.8 B組練習 155
14.9 多重賦值 155
14.10 通過多重賦值交換值 156
14.11 找出兩個數字的GCD的
歐幾里得算法 156
14.12 “互質” 157
14.13 C組練習 157
14.14 乘數加密法 157
14.15 D組練習 159
14.16 乘數加密法 + 凱撒加密法 =
仿射加密法 159
14.17 仿射密鑰的第一個問題 159
14.18 使用仿射加密法解密 160
14.19 找出模逆 161
14.20 //整數除法運算符 161
14.21 cryptomath模塊的源代碼 162
14.22 E組練習 163
14.23 總結 163
第15章 仿射加密法 164
15.1 仿射加密法程序的源代碼 164
15.2 運行仿射加密法程序 166
15.3 A組練習 166
15.4 這個程序如何工作 166
15.5 把一個密鑰分成兩個密鑰 167
15.6 元祖數據類型 168
15.7 密鑰的輸入驗證 168
15.8 仿射加密法加密函數 169
15.9 仿射加密法解密函數 170
15.10 生成隨機密鑰 171
15.11 仿射密鑰的第二個問題:仿射加密法可以有多少個密鑰 172
15.12 總結 173
第16章 破譯仿射加密法 174
16.1 仿射加密法破譯程序的
源代碼 174
16.2 運行仿射加密法破譯程序 175
16.3 這個程序如何工作 176
16.4 仿射加密法破譯函數 177
16.5 **指數運算符 177
16.6 continue語句 178
16.7 A組練習 180
16.8 總結 180
第17章 簡單替代加密法 181
17.1 使用紙筆實現簡單替代加密法 181
17.2 A組練習 182
17.3 簡單替代加密法的源代碼 182
17.4 運行簡單替代加密法程序 183
17.5 這個程序如何工作 184
17.6 程序的main()函數 184
17.7 sort()列表方法 185
17.8 包裝器函數 186
17.9 程序的translateMessage()
函數 187
17.10 isupper()和islower()字符串
方法 189
17.11 B組練習 190
17.12 生成隨機密鑰 190
17.13 加密空格和標點符號 191
17.14 C組練習 191
17.15 總結 192
第18章 破譯簡單替代加密法 193
18.1 計算單詞模式 193
18.2 獲取密詞的候選單詞列表 194
18.3 A組練習 195
18.4 單詞模式模塊的源代碼 195
18.5 運行單詞模式模塊 196
18.6 這個程序如何工作 197
18.7 pprint.pprint()和pprint.
pformat()函數 197
18.8 在Python里使用列表創建
字符串 198
18.9 計算單詞模式 199
18.10 單詞模式程序的main()函數 200
18.11 破譯簡單替代加密法 202
18.12 簡單替代破譯程序的源代碼 202
18.13 破譯簡單替代加密法(理論) 205
18.14 使用Interactive Shell探索
破譯函數 205
18.15 這個程序如何工作 209
18.16 導入所有東西 209
18.17 正則表達式和sub()正則方法
簡介 210
18.18 破譯程序的main()函數 211
18.19 部分破譯加密法 211
18.20 空密字映射 212
18.21 把字母添加到密字映射 213
18.22 計算兩個字母映射的交集 214
18.23 從密字映射移除已經破譯的
字母 215
18.24 破譯簡單替代加密法 217
18.25 從密字映射創建密鑰 219
18.26 我們不能把空格也加密嗎 220
18.27 總結 220
第19章 維吉尼亞加密法 221
19.1 不可破譯的加密法 221
19.2 維吉尼亞密鑰里的多個“密鑰” 221
19.3 維吉尼亞加密法程序的源代碼 224
19.4 運行維吉尼亞加密法程序 226
19.5 這個程序如何工作 227
19.6 總結 230
第20章 頻率分析 231
20.1 字母頻率和ETAOIN 231
20.1.1 匹配字母頻率 232
20.1.2 計算頻率匹配分值的例子 233
20.1.3 另一個計算頻率匹配分值的例子 233
20.1.4 破譯每個子密鑰 234
20.2 匹配字母頻率的代碼 234
20.3 這個程序如何工作 236
20.4 最常見的字母“ETAOIN” 237
20.5 這個程序的getLettersCount()
函數 237
20.6 這個程序的getItemAtIndex
Zero()函數 238
20.7 這個程序的getFrequencyOrder()函數 238
20.8 sort()方法的key和reverse關鍵字參數 239
20.9 把函數作為值傳遞 240
20.10 通過keys()、values()和items()詞典方法把詞典轉換成列表 241
20.11 對詞典的項進行排序 242
20.12 這個程序的englishFreqMatch
Score()函數 243
20.13 總結 244
第21章 破譯維吉尼亞加密法 245
21.1 詞典攻擊 245
21.2 維吉尼亞詞典攻擊程序的源代碼 245
21.3 運行維吉尼亞詞典破譯程序 246
21.4 readlines()文件對象方法 247
21.5 巴貝奇攻擊和卡西斯基試驗 247
21.6 卡西斯基試驗的第1步——
找出重復序列的間距 247
21.7 卡西斯基試驗的第2步——
獲取間距的因數 248
21.8 從字符串獲取每隔N個字母 249
21.9 頻率分析 249
21.10 暴力破譯可能密鑰 251
21.11 維吉尼亞破譯程序的源代碼 251
21.12 運行維吉尼亞破譯程序 256
21.13 這個程序如何工作 258
21.14 找出重復序列 259
21.15 計算因數 260
21.16 通過set()函數來移除重復值 261
21.17 卡西斯基測試算法 263
21.18 extend()列表方法 264
21.19 print()的end關鍵字參數 268
21.20 itertools.product()函數 269
21.21 break語句 272
21.22 A組練習 273
21.23 修改破譯程序的常量 273
21.24 總結 274
第22章 一次密碼本加密法 275
22.1 牢不可破的一次密碼本加密法 275
22.2 為什么一次密碼本加密法是
牢不可破的 275
22.3 小心偽隨機 276
22.4 小心二次密碼本加密法 277
22.5 二次密碼本加密法就是維吉尼亞加密法 277
22.6 A組練習 278
22.7 總結 278
第23章 尋找質數 279
23.1 質數 279
23.2 合數 280
23.3 質數篩選模塊的源代碼 280
23.4 這個程序如何工作 281
23.5 如何判斷一個數字是不是質數 282
23.6 埃拉托色尼篩選法 283
23.7 primeSieve()函數 284
23.8 檢測質數 285
23.9 拉賓米勒模塊的源代碼 285
23.10 運行拉賓米勒模塊 287
23.11 這個程序如何工作 287
23.12 拉賓米勒算法 287
23.13 新的經過改進的isPrime()函數 288
23.14 總結 289
第24章 公鑰密碼學和RSA加密法 291
24.1 公鑰密碼學 291
24.2 “課本”RSA的危險 292
24.3 身份驗證的問題 292
24.4 中間人攻擊 293
24.5 生成公鑰和私鑰 293
24.6 RSA密鑰生成程序的源代碼 294
24.7 運行RSA密鑰生成程序 295
24.8 這個密鑰生成程序如何工作 296
24.9 這個程序的generateKey()函數 297
24.10 RSA密鑰文件格式 299
24.11 混合加密機制 300
24.12 RSA加密法程序的源代碼 300
24.13 運行RSA加密法程序 303
24.14 A組練習 304
24.15 數字簽名 304
24.16 RSA加密法程序如何工作 306
24.17 ASCII:使用數字來表示字符 307
24.18 chr()和ord()函數 308
24.19 B組練習 308
24.20 區塊 308
24.21 使用getBlocksFromText()把
字符串轉成區塊 311
24.22 encode()字符串方法和字節數
據類型 311
24.23 bytes()函數和decode()bytes
方法 312
24.24 C組練習 312
24.25 回到代碼 313
24.26 min()和max()函數 313
24.27 insert()列表方法 315
24.28 RSA加密和解密的數學運算 316
24.29 pow()函數 317
24.30 從密鑰文件讀取公鑰和私鑰 318
24.31 完整的RSA加密流程 318
24.32 完整的RSA解密流程 320
24.33 D組練習 321
24.34 我們為什么不能破譯RSA
加密法 321
24.35 總結 323

序: