返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • Python密码学编程(第2版) (美)阿尔·斯维加特 著 郑新芳,赵怡翾 译 专业科技 文轩网
  • 新华书店正版
    • 作者: (美)阿尔·斯维加特著 | | 郑新芳,赵怡翾译
    • 出版社: 人民邮电出版社
    • 出版时间:2020-04-01 00:00:00
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    文轩网图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

         https://product.suning.com/0070067633/11555288247.html

     

    商品参数
    • 作者: (美)阿尔·斯维加特著| 郑新芳,赵怡翾译
    • 出版社:人民邮电出版社
    • 出版时间:2020-04-01 00:00:00
    • 版次:1
    • 印次:1
    • 印刷时间:2020-04-01
    • 字数:475000
    • 页数:352
    • 开本:16开
    • 装帧:平装
    • ISBN:9787115529992
    • 国别/地区:中国
    • 版权提供:人民邮电出版社

    Python密码学编程(第2版)

    作  者:(美)阿尔·斯维加特 著 郑新芳,赵怡翾 译
    定  价:89
    出 版 社:人民邮电出版社
    出版日期:2020年04月01日
    页  数:352
    装  帧:平装
    ISBN:9787115529992
    主编推荐

    本书是学习用Python编程实现加密算法的初学者指南 本书附带示例源代码,帮助读者学以致用 本书配有课后习题及答案,可帮助读者加深知识理解 通过阅读本书,您将学习如何通过 Python 编程制作和破解密码,以此创建和发送密文!学习 Python 编程的基础 知识之后,您将从使用反向和凯撒密码的简单程序开始,了解为公开密钥加密的方法,该加密方法用于保护在线事务的 正常运作,包括数字签名和电子邮件。另外,您还将学习如何使用经典密码(如置换密码和维吉尼亚密码)对文本进行加密。 每个程序都包含完整的代码和逐行说明。本书结尾,您将学习如何使用 Python 进行编码。 您还将学习以下内容: 将循环、变量和流控制语句组合到实际的工作程序中; 使用字典文件检测解密的消息是有效的英文还是乱码; 创建并测试程序以确保代码正确加密和解密; 对仿射密码进行编码(破解)的示例(使用模块化算术对消息进行加null

    内容简介

    自互联网面世以来,网络安全一直是人们所重视的问题。从20世纪中叶开始,流传千百年的密码算法纷纷被投入到了网络安全的应用中;随后,在20世纪70年代,与古典密码接近不同的密码体制——公钥密码算法横空出世,密码学的发展完成了一次飞跃。Python诞生于20世纪90年代,它是一种面向对象语言特点与解释型语言特点相结合的高级程序设计语言,已经得到了大规模应用。本书将Python语言与密码学结合起来,从简单的古典密码算法开始,一直到公钥密码算法,进行了简洁而细致的说明与解读。每一种密码算法的讲解包括原理部分、实现部分和破解部分(公钥算法不包括破解部分),其中后两者附有详细的Python代码,注释简洁明了,可读性极高。每章的末尾还提供了一些习题,帮助读者巩固所学知识并进行深入理解。本书适合任何想要学习Python编程并对密码学抱有兴趣的读者。本书对Python编程的基础要求不高,初学者可以放心地阅读本null

    作者简介

    精彩内容

    目录
    第1章制作纸质密码学工具1
    1.1什么是密码学1
    1.2编码与密码2
    1.3凯撒密码3
    1.3.1密码轮3
    1.3.2使用密码轮进行加密4
    1.3.3使用密码轮进行解密5
    1.3.4通过计算进行加密和解密5
    1.4为什么加密两次不起作用6
    1.5小结7
    1.6习题7
    第2章在交互式运行环境中编程8
    2.1简单的数学表达式8
    2.2整型和浮点数的值9
    2.3表达式10
    2.4运算顺序10
    2.5计算表达式的值10
    2.6用变量存储数值12
    2.7重写变量13
    2.8变量名14
    2.9小结14
    2.10习题15
    第3章字符串及编写程序16
    3.1用字符串的值处理文本16
    3.1.1“+”运算符实现字符串拼接17
    3.1.2“*”运算符实现字符串复制18
    3.1.3通过索引获得字符串中的字符18
    3.2用print()函数打印值21
    3.3打印转义字符22
    3.4引号和双引号23
    3.5在集成开发环境的文件编辑器中编写程序23
    3.6“Hello,World!”程序的源代码24
    3.7使用在线比较工具检查源代码25
    3.8通过集成开发环境保存程序26
    3.8.1保存程序26
    3.8.2运行程序26
    3.8.3打开保存的程序27
    3.9“Hello,World!”程序如何工作27
    3.9.1注释28
    3.9.2打印指示信息28
    3.9.3接收输入28
    3.9.4完成程序29
    3.10小结29
    3.11习题30
    第4章反向密码31
    4.1反向密码程序的源代码31
    4.2反向密码程序的执行结果样例32
    4.3设置注释及变量32
    4.4确定字符串的长度33
    4.5while循环33
    4.6Boolean数据类型34
    4.7比较操作符34
    4.8代码块36
    4.9while循环语句37
    4.10“增长”字符串38
    4.11用input()提示改进程序40
    4.12小结41
    4.13习题41
    第5章凯撒密码42
    5.1凯撒密码程序的源代码42
    5.2凯撒密码程序样例运行43
    5.3导入模块并创建变量44
    5.4常量和变量45
    5.5for循环语句45
    5.5.1for循环的示例46
    5.5.2等价于for循环的while循环46
    5.6if语句47
    5.6.1if语句的示例47
    5.6.2else语句48
    5.6.3elif语句48
    5.7in和notin运算符49
    5.8find()字符串方法50
    5.9符号加密和解密51
    5.9.1实现“回环”51
    5.9.2处理符号集以外的符号52
    5.10显示和复制translated字符串52
    5.11加密其他字符53
    5.12小结53
    5.13习题54
    第6章用暴力算法破解凯撒密码56
    6.1破解凯撒密码的源代码56
    6.2运行凯撒密码破解程序的样例57
    6.3设置变量58
    6.4在循环中使用range()方法58
    6.5解密消息59
    6.6使用字符串标准化输出密钥及解密后的信息60
    6.7小结61
    6.8习题62
    第7章通过置换密码实现加密63
    7.1置换密码如何工作63
    7.1.1手动加密消息64
    7.1.2创建加密程序65
    7.2置换密码加密程序的源代码66
    7.3置换密码加密程序的示例运行67
    7.4用def语句创建自定义函数67
    7.4.1定义用形参接收实参的函数68
    7.4.2更改仅存在于函数中的形参68
    7.4.3定义main()函数69
    7.5以参数形式传递密钥和消息70
    7.6数据类型:列表70
    7.6.1对列表中的项重新赋值71
    7.6.2多级列表72
    7.6.3对列表使用len()和in运算符72
    7.6.4用+和*运算符连接和复制列表73
    7.7置换加密算法74
    7.8增量赋值运算符75
    7.9随消息移动currentIndex75
    7.10join()字符串方法77
    7.11返回值和返回语句77
    7.11.1return语句示例78
    7.11.2返回加密得到的密文78
    7.12__name__变量78
    7.13小结79
    7.14习题80
    第8章解密置换密码81
    8.1如何在纸上解密置换密码81
    8.2置换密码解密程序的源代码82
    8.3运行置换密码解密程序的样例84
    8.4导入模块并创建主函数84
    8.5使用密钥解密消息84
    8.5.1round()、math.ceil()和math.floor()方法85
    8.5.2decryptMessage()函数86
    8.5.3布尔操作符87
    8.5.4使用and和or操作符往往是一条捷径89
    8.5.5布尔操作符的运算顺序90
    8.5.6调整变量column和row的值90
    8.6调用main()函数92
    8.7小结92
    8.8习题92
    第9章编写测试程序94
    9.1置换密码测试程序的源代码94
    9.2运行置换密码测试程序的示例95
    9.3导入模块96
    9.4生成伪随机数96
    9.5创建随机字符串97
    9.5.1将字符串复制随机次98
    9.5.2列表变量使用引用98
    9.5.3传递引用101
    9.5.4使用copy.deepcopy()复制列表101
    9.5.5random.shuffle()函数101
    9.5.6随机打乱字符串102
    9.6测试消息102
    9.7检查密码程序是否正常工作并结束程序103
    9.8调用main()函数104
    9.9检验测试程序104
    9.10小结104
    9.11习题105
    第10章文件的加密与解密106
    10.1纯文本文件106
    10.2使用置换密码加密文件的源代码107
    10.3运行置换密码加密文件程序的样例108
    10.4文件操作109
    10.4.1打开文件109
    10.4.2数据写入及文件关闭109
    10.4.3读取文件110
    10.5创建main()函数111
    10.6检查文件是否存在111
    10.6.1os.path.exists()方法111
    10.6.2使用os.path.exists()方法检查输入的文件是否存在112
    10.7使用字符串方法令用户的输入更灵活112
    10.7.1upper()、lower()和title()字符串方法112
    10.7.2startswith()和endswith()方法113
    10.7.3在程序中使用上述字符串方法113
    10.8读取作为输入的文件114
    10.9计算加/解密所需的时间114
    10.9.1time模块和time.time()方法114
    10.9.2在程序中使用time.time()方法115
    10.10将输出写入文件115
    10.11调用main()函数116
    10.12小结116
    10.13习题117
    第11章编程检测英语文本118
    11.1计算机如何理解英语118
    11.2英语检测模块的源代码120
    11.3英语检测模块的运行示例121
    11.4指令和设置常量121
    11.5字典数据类型122
    11.5.1字典和列表之间的区别123
    11.5.2在字典中添加或更改项123
    11.5.3对字典使用len()函数124
    11.5.4对字典使用in运算符124
    11.5.5用字典检索项比用列表更快125
    11.5.6在字典上使用循环125
    11.6运行字典文件125
    11.6.1split()方法126
    11.6.2将字典文件分割成单个单词126
    11.6.3返回字典数据127
    11.7对消息中出现的英文单词进行计数127
    11.7.1除数为零错误128
    11.7.2对匹配上的英语单词进行计数128
    11.7.3float()、int()和str()函数及整数除法129
    11.7.4获得message中英语单词的比例129
    11.8删除非字母字符130
    11.8.1append()列表方法130
    11.8.2创建字母组成的字符串131
    11.9检测英语单词131
    11.9.1使用默认参数132
    11.9.2计算百分比132
    11.10小结134
    11.11习题134
    第12章破解置换密码136
    12.1破解置换密码程序的源代码136
    12.2运行破解置换密码程序的样例137
    12.3导入模块138
    12.4使用三引号的多行字符串138
    12.5展示破解密文的结果139
    12.6得到破解后的消息140
    12.6.1strip()字符串方法141
    12.6.2应用strip()字符串方法142
    12.6.3破解失败142
    12.7调用main()函数143
    12.8小结143
    12.9习题143
    第13章仿射密码的模运算模块144
    13.1模运算144
    13.2模运算符145
    13.3寻找因子并计算优选公约数146
    13.4多重赋值147
    13.5欧几里得算法求优选公约数148
    13.6理解乘法和仿射密码的工作原理149
    13.6.1为乘法密码选择有效的密钥150
    13.6.2仿射密码加密150
    13.6.3仿射密码解密151
    13.6.4计算模逆152
    13.6.5整数除法运算符152
    13.7Cryptomath模块的源代码153
    13.8小结154
    13.9习题154
    第14章编写仿射密码155
    14.1仿射密码程序的源代码155
    14.2运行仿射密码程序的样例157
    14.3引入模块、设置常量并创建main()函数157
    14.4计算并验证密钥158
    14.4.1元组数据类型159
    14.4.2检验弱密钥159
    14.4.3仿射密码共有多少种密钥组合160
    14.5编写加密函数162
    14.6编写解密函数163
    14.7生成随机密钥对164
    14.8调用main()函数164
    14.9小结165
    14.10习题165
    第15章破解仿射密码166
    15.1仿射密码破解程序的源代码166
    15.2仿射密码破解程序的运行示例167
    15.3创建模块、常量和main()函数168
    15.4仿射密码破解函数169
    15.4.1乘方运算符169
    15.4.2计算可能密钥的总数169
    15.4.3continue语句170
    15.4.4使用continue跳过代码171
    15.5调用main()函数172
    15.6小结172
    15.7习题173
    第16章编写简单代换密码174
    16.1简单代换密码的工作原理174
    16.2简单代换密码程序的源代码175
    16.3运行简单代换密码程序的样例177
    16.4引入模块、设置常量、创建main()函数177
    16.5sort()列表方法179
    16.6包裹函数179
    16.7translateMessage()函数181
    16.7.1isupper()和islower()字符串方法182
    16.7.2用isupper()保留字符原大小写形式183
    16.8生成随机密钥184
    16.9调用main()函数184
    16.10小结185
    16.11习题185
    第17章破解简单代换密码186
    17.1使用单词模式进行解密186
    17.1.1寻找单词模式187
    17.1.2寻找可能解密字母187
    17.2破解程序总览188
    17.3单词模式模块189
    17.4简单代换破解程序的源代码190
    17.5简单代换破解程序的运行示例193
    17.6创建模块和常量193
    17.7用正则表达式查找字符194
    17.8创建main()函数194
    17.9向用户显示破解结果195
    17.10创建密文映射195
    17.10.1创建空映射196
    17.10.2向映射添加字母196
    17.10.3取两个映射的交集197
    17.10.4字母映射辅助函数的工作原理198
    17.10.5识别映射中已确定的明文字母201
    17.10.6测试removeSolvedLetterFrom-Mapping()函数203
    17.11hackSimpleSub()函数203
    17.11.1replace()字符串方法205
    17.11.2解密消息205
    17.11.3在交互式运行环境中进行解密206
    17.12调用main()函数207
    17.13小结208
    17.14习题208
    第18章编写维吉尼亚密码209
    18.1在维吉尼亚密码中使用多字母密钥209
    18.1.1密钥越长,维吉尼亚密码越安全211
    18.1.2选择一把抗字典攻击的密钥212
    18.2维吉尼亚密码实现程序的源代码212
    18.3运行维吉尼亚密码实现程序的样例214
    18.4引入模块、设置常量和创建main()函数214
    18.5使用List-Append-Join模式生成字符串215
    18.6消息的加密与解密216
    18.7调用main()函数218
    18.8小结218
    18.9习题219
    第19章频率分析220
    19.1分析文本中的字母频率220
    19.2匹配字母频率222
    19.2.1计算简单代换密码的频率匹配分数222
    19.2.2计算置换密码的频率匹配分数223
    19.2.3对维吉尼亚密码进行频率分析224
    19.3计算字母频率的源码224
    19.4以“ETAOIN”顺序保存字母226
    19.5对消息中的字母进行计数227
    19.6获取元组的第一个成员228
    19.7将消息中的字母按频率大小排序228
    19.7.1getLetterCount()完成字母计数229
    19.7.2创建字典存储频率和字母列表229
    19.7.3按ETAOIN顺序排序字母列表230
    19.7.4字典列表按频率大小排序233
    19.7.5创建列表存储排序后的字母235
    19.8计算消息的频率匹配分数235
    19.9小结236
    19.10习题237
    第20章破解维吉尼亚密码238
    20.1运用字典式攻击暴力破解维吉尼亚密码238
    20.2维吉尼亚密码字典式破解程序的源代码238
    20.3维吉尼亚密码字典式破解程序的运行样例239
    20.4关于维吉尼亚密码破解程序240
    20.5运用Kasiski检测确定密钥长度240
    20.5.1找到重复序列240
    20.5.2求得间隔的因子241
    20.5.3提取字符串的每个第N位字母242
    20.5.4使用频率分析法逐个破解子密钥243
    20.5.5暴力破解可能密钥245
    20.6维吉尼亚密码破解程序的源代码246
    20.7维吉尼亚密码破解程序的运行样例251
    20.8引入模块、设置常量和创建main()函数251
    20.9寻找重复序列252
    20.10求得间隔数的因子254
    20.10.1通过set()函数去除重复元素255
    20.10.2移除重复因子并对列表进行排序256
    20.10.3找到出现次数最多的因子256
    20.11找到最可能的密钥长度258
    20.11.1extend()列表方法258
    20.11.2扩展repeatedSeqSpacings字典259
    20.11.3从factorByCount中获取因子259
    20.12找到由相同子密钥加密的字母260
    20.13尝试用可能的密钥长度进行解密261
    20.13.1print()的end关键字参数263
    20.13.2以沉默模式执行程序或打印信息263
    20.13.3确定子密钥的可能组合264
    20.13.4以正确的大小写形式打印解密后的文本267
    20.14返回破解后的消息268
    20.14.1找到可能密钥后跳出循环268
    20.14.2用其他所有可能密钥长度进行暴力破解269
    20.15调用main()函数269
    20.16改变破解程序中的常量269
    20.17小结270
    20.18习题271
    第21章一次一密272
    21.1不可破解的一次一密272
    21.1.1密钥长度等于消息长度272
    21.1.2使密钥真正随机274
    21.1.3避免两次一密274
    21.2为什么两次一密是维吉尼亚密码275
    21.3小结276
    21.4习题276
    第22章素数的查找与生成277
    22.1什么是素数277
    22.2素数模块的源代码279
    22.3素数模块的调用样例281
    22.4试除法的原理281
    22.5实现试除法检测283
    22.6埃拉托斯特尼筛法283
    22.7使用埃拉托斯特尼筛法生成素数285
    22.8Rabin-Miller素性检测算法286
    22.9寻找大素数287
    22.10生成大素数288
    22.11小结289
    22.12习题289
    第23章为公钥密码生成密钥290
    23.1公钥密码体制290
    23.2认证的问题291
    23.2.1数字签名292
    23.2.2谨防MITM攻击293
    23.3生成公钥和私钥的步骤293
    23.4公钥生成程序的源代码294
    23.5公钥生成程序的示例运行295
    23.6创建main()函数296
    23.7通过generateKey()函数生成密钥297
    23.7.1计算e的值297
    23.7.2计算d的值298
    23.7.3返回公私钥对298
    23.8通过makeKeyFiles()函数创建密钥文件299
    23.9调用main()函数300
    23.10混合密码体制301
    23.11小结301
    23.12习题301
    第24章编写公钥密码算法302
    24.1公钥密码算法的实现原理302
    24.1.1分组的创建302
    24.1.2字符串转换为分组303
    24.1.3公钥密码算法进行加解密的数学原理305
    24.1.4分组转换为字符串306
    24.1.5为什么不能破解公钥密码307
    24.2实现公钥密码算法的源代码309
    24.3公钥密码算法实现程序的运行样例312
    24.4程序的设置313
    24.5程序如何判断加解密314
    24.6通过getBlockFromText()函数将字符串转换为分组315
    24.6.1min()函数及max()函数315
    24.6.2将分组存储在blockInt中316
    24.7使用getTextFromBlocks()进行解密317
    24.7.1使用insert()列表方法318
    24.7.2将消息列表合并为一个字符串318
    24.8编写encryptMessage()函数319
    24.9编写decryptMessage()函数319
    24.10从密钥文件中读取公钥和私钥320
    24.11将加密的内容写入文件321
    24.12解密文件中的信息323
    24.13调用main()函数324
    24.14小结324
    附录调试Python代码326

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购