• Windows C/C++加密解密实战
  • Windows C/C++加密解密实战
  • Windows C/C++加密解密实战
  • Windows C/C++加密解密实战
  • Windows C/C++加密解密实战
  • Windows C/C++加密解密实战
  • Windows C/C++加密解密实战
  • Windows C/C++加密解密实战
  • Windows C/C++加密解密实战
21年品牌 40万+商家 超1.5亿件商品

Windows C/C++加密解密实战

全新正版 急速发货

63.3 4.9折 129 全新

库存27件

天津武清
认证卖家担保交易快速发货售后保障

作者朱晨冰 李建英 著

出版社清华大学出版社

ISBN9787302578215

出版时间2021-06

装帧平装

开本16开

定价129元

货号29251471

上书时间2024-12-15

当科图书专营店

五年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

随着计算机及网络技术的发展,信息安全,特别是各行各业信息系统的安全成为社会关注的焦点,直接影响国家的安全和社会的稳定。
信息安全技术是核心技术中的核心。信息安全,大到国防安全,小到个人银行账号,一出事对国家和个人都是大事。网络世界黑白难分,暗礁险滩出入相随,保护信息安全是每个IT人员必须重视的课题,一定要保证所开发的信息系统是安全的,经得起攻击。作为一个IT人,无论你是在Linux下开发,还是在Windows下开发,无论是用C/C  开发,还是Java开发,或者用C#开发,都应该掌握信息安全技术,这项技术就像我们大学学习的数据结构、离散数学那样,是任何信息系统的基础。举一个简单的例子,你在开发一个信息管理系统,总不能把用户的登录口令以明文的方式保存在数据库中吧。
 C/C  语言作为当今世界主流的开发语言,使用十分广泛,而关于C/C  加解密方面的图书寥寥无几,而且现有的只是对基本的函数进行介绍,并没有深入算法原理。也就是读者看了,只知道这样用,而不理解为何这样用。学习信息安全技术,不先从原理上来理解其本质,是开发不出安全的系统来的。
为何要写一本密码书?答案是市面上的密码书实在太学院派或太工程派。本书不同于以往的密码书,很多学院派的密码书对许多常用或不常用的密码算法只是蜻蜓点水、浅尝辄止地介绍,而没有进行上机的代码实现,让学生看了似懂非懂。而实践派的密码书从头到尾只是几个业界算法库的函数介绍,然后调用,接着就结束了,让学生看了只知其然,而不知其所以然。
本书来自于拥有几十年经验的密码开发工程师一手资料,知道哪些算法是重要并且常用的,瞄准这几个常用的算法(本书全方面地从理论到实现介绍SM2/SM3/SM4算法),循序渐进(甚至从小学数学讲起),详细地介绍其原理,到自主实现,再到业界库的调用(工作中必定会碰到,一定要在找工作之前学习),对于有理解难点的地方会重点介绍。通过本书,读者不仅能理解原理,还能自己上机实现,还可以熟练调用业界知名算法库,做到从理论到实践的全线精通,这一点是市面上99%的密码书都无法做到的。可以说,学完本书,立即上岗,毫无压力!
本书首先从各大主流加解密算法的原理入手,然后用C/C  语言手工实现该算法(这是理解算法理论的必要过程),后从C/C  提供的主流加解密框架和函数库入手熟悉其使用。记住,会使用函数库是基本的技能,真正的专家是要会设计和实现算法库,因为很多场合,尤其是国防军工领域,很多敏感的、需要高性能的地方都要自己实现加解密算法,而不能照搬别人的函数库,所以不理解原理是不可以的。C/C  作为信息系统开发的主流语言,其信息安全需求十分旺盛,在C/C  开发的信息系统中,熟练运用信息安全技术迫在眉睫。
作者长期工作在信息安全开发一线,有着较为丰富的密码算法使用经验,经常使用各种算法来保护数据安全,自己平时也积累了不少技术心得和开发经验,但这些技术比较零散,系统性不强,借此机会,将这些内容整理成一个完整的系统,并且将所涉及的技巧和方法讲述出来,是一件很荣幸的事。作者所做的工作来源于长期的实践,对于密码安全的开发技巧都从基本的内容讲起,然后稍微提高,所以本书可以说是“贴近实战”。软件开发是一门需要实践的技术,本书对理论尽量用简单易懂的语言介绍,然后配合相应的实例,避免空洞的说教,对于其中的技术细节,都尽量讲深、讲透,为读者提供翔实可靠的技术资料。
实践反复告诉我们,只有把关键核心技术掌握在自己手中,才能从根本上保障国家经济安全、国防安全和其他安全。作为一名老工程师,真心希望每个IT从业者都能静下心来学一学密码学。
密码学在信息技术应用中占有重要的地位,国家也日益重视信息安全,密码技术成为开发者经常会碰到的问题。针对当前密码学领域的书,要么理论太枯燥,要么太简单笼统,无法应对一线实战开发的情况,因此就有了这么一本面对初中级程序员的密码学开发方面的书。很多人学习密码学主要是应用密码算法来保护数据安全,实际开发过程中也是如此,所以学习密码学的度很有讲究,太深没必要,太浅没什么用。本书在学习深度方面也经过了仔细斟酌。
源码下载与技术支持
本书示例源码请扫描下面的二维码下载,也可按页面提示转发到自己的邮箱中下载。由于写作时间紧迫,书中疏漏之处在所难免,读者若有疑问、建议和意见,可以加作者技术支持QQ或者发送邮件联系作者(QQ、邮箱参见下载资源),邮件主题为“Windows C/C  加密解密实战”,在此表示感谢。
  

作  者
2021年1月



导语摘要

本书详解Windows加解密算法的原理及其实现技术,内容安排首先从各大主流加解密算法的原理入手,然后用C/C 语言自主实现这些算法,*后从C/C 提供的主流加解密框架和函数库入手讲解其使用方法。 本书分为14章,内容包括密码学概述、搭建C和C 密码开发环境、对称密码算法、杂凑函数和HMAC、密码学中常见的编码格式、非对称算法RSA的加解密、数字签名技术、椭圆曲线密码体制ECC、CSP和CryptoAPI、身份认证和PKI理论基础、实战PKI、SSL-TLS编程、SM2算法的数学基础、SM2算法的实现。 本书适合用于C/C 初中级开发人员自学密码开发技术,也适合高等院校和培训机构相关专业的师生教学参考。



作者简介

朱晨冰,朱文伟的笔名,名校计算机专业统招硕士,20年C\C  、Java开发经验。主导开发过密码、图形、人工智能等产品。精通Linux、Windows系统开发及数据库开发技术。著有图书《Windows C/C  加密解密实战》《密码学原理与Java实现》《Linux C与C   一线开发实践》《Visual C  2017从入门到精通》。



目录

第1章  密码学概述 1
1.1  玛丽女王的密码 1
1.2  密码学简史 5
1.3  密码学的基本概念 7
1.3.1  基本概念 7
1.3.2  密码学要解决的5大问题 7
1.3.3  密码学中的五元组 8
1.3.4  加解密算法的分类 8
第2章  搭建C和C  密码开发环境 9
2.1  密码编程的两个重要的国际库 9
2.2  C/C  密码库OpenSSL 9
2.2.1  OpenSSL源代码模块结构 10
2.2.2  OpenSSL加密库调用方式 10
2.2.3  OpenSSL支持的对称加密算法 11
2.2.4  OpenSSL支持的非对称加密算法 11
2.2.5  OpenSSL支持的信息摘要算法 12
2.2.6  OpenSSL密钥和证书管理 12
2.2.7  面向对象与OpenSSL 12
2.2.8  BIO接口 14
2.2.9  EVP接口 15
2.2.10  关于版本和操作系统 16
2.2.11  在Windows下编译OpenSSL 1.1.1 16
2.2.12  在Windows下编译OpenSSL 1.0.2m 30
2.2.13  在Linux下编译安装OpenSSL 1.0.2 38
2.2.14  测试使用openssl命令 47
2.3  纯C  密码开发Crypto  库 49
2.3.1  Crypto  的编译 50
2.3.2  使用Cypto  进行AES加解密 50
2.4  国产密码开发库GmSSL 52
2.4.1  GmSSL的特点 52
2.4.2  GmSSL的一些历史 52
2.4.3  什么是国密算法 53
2.4.4  GmSSL的下载 53
2.4.5  在Windows下编译安装GmSSL 54
2.4.6  在Linux下编译安装GmSSL 57
2.4.7  默认编译安装GmSSL 61
2.4.8  在老版本的Linux下编译安装GmSSL 64
第3章  对称密码算法 68
3.1  基本概念 68
3.2  对称加解密算法的分类 69
3.3  流加密算法 69
3.3.1  基本概念 69
3.3.2  流密码和分组密码的比较 70
3.3.3  RC4算法 71
3.4  分组加密算法 81
3.4.1  工作模式 81
3.4.2  短块加密 85
3.4.3  DES和3DES算法 86
3.4.4  SM4算法 104
3.5  利用OpenSSL进行对称加解密 120
3.5.1  基本概念 120
3.5.2  对称加解密相关函数 121
第4章  杂凑函数和HMAC 131
4.1  杂凑函数概述 131
4.1.1  什么是杂凑函数 131
4.1.2  密码学和杂凑函数 131
4.1.3  杂凑函数的发展 132
4.1.4  杂凑函数的设计 132
4.1.5  杂凑函数的分类 133
4.1.6  杂凑函数的碰撞 133
4.2  SM3杂凑算法 134
4.2.1  常量和函数 134
4.2.2  填充 135
4.2.3  迭代压缩 135
4.2.4  杂凑值 136
4.2.5  一段式SM3算法的实现 137
4.2.6  三段式SM3杂凑的实现 141
4.2.7  OpenSSL实现SM3算法 151
4.3  HMAC 155
4.3.1  什么是HMAC 155
4.3.2  产生背景 155
4.3.3  设计目标 156
4.3.4  算法描述 156
4.3.5  独立自主实现HMAC-SM3 157
4.4  SHA系列杂凑算法 160
4.4.1  SHA算法概述 160
4.4.2  SHA的发展史 161
4.4.3  SHA系列算法的核心思想和特点 161
4.4.4  单向性 161
4.4.5  主要用途 161
4.4.6  SHA256算法原理解析 161
4.4.7  SHA384和SHA512算法 177
4.5  更通用的基于OpenSSL的哈希运算 204
4.5.1  获取摘要算法函数EVP_get_digestbyname 205
4.5.2  创建结构体并初始化函数EVP_MD_CTX_create 205
4.5.3  销毁摘要上下文结构体EVP_MD_CTX_destroy 206
4.5.4  摘要初始化函数EVP_DigestInit_ex 206
4.5.5  摘要更新函数EVP_DigestUpdate 206
4.5.6  摘要结束函数EVP_Digest_Final_ex 207
4.5.7  单包摘要计算函数EVP_Digest 207
第5章  密码学中常见的编码格式 210
5.1  Base64编码 210
5.1.1  Base64编码的由来 210
5.1.2  Base64的索引表 210
5.1.3  Base64的转化原理 211
5.1.4  使用OpenSSL的base64命令 213
5.1.5  编程实现Base64编解码 214
5.2  PEM文件 217
5.2.1  什么是PEM文件 217
5.2.2  生成一个PEM文件 219
5.3  ASN.1和BER、DER 220
5.3.1  ASN.1的历史 220
5.3.2  ASN.1的基本概念 221
5.3.3  ASN.1和ASN.1编码规则在OSI中的应用 222
5.3.4  电子商务中ASN.1和DER编码的应用 223
5.3.5  ASN的优点 223
5.3.6  ASN.1的文法描述 224
5.3.7  编码规则 225
5.3.8  ASN.1实例 232
第6章  非对称算法RSA的加解密 236
6.1  非对称密码体制概述 236
6.2  RSA概述 237
6.3  RSA的数学基础 238
6.3.1  素数(质数) 238
6.3.2  素性检测 239
6.3.3  倍数 239
6.3.4  约数 239
6.3.5  互质数 239
6.3.6  质因数 240
6.3.7  强素数 240
6.3.8  因子 240
6.3.9  模运算 240
6.3.10  模运算的操作与性质 241
6.3.11  单向函数 241
6.3.12  费马定理和欧拉定理 243
6.3.13  幂 243
6.3.14  模幂运算 243
6.3.15  同余符号“≡” 243
6.3.16  欧拉函数 244
6.3.17  公约数 244
6.3.18  欧几里得算法 244
6.3.19  扩展欧几里得算法 246
6.4  RSA算法描述 254
6.5  RSA算法实例 256
6.5.1  查找法计算私钥d 256
6.5.2  简便法计算私钥d 259
6.5.3  扩展欧几里得算法计算私钥d 260
6.5.4  加密字母 261
6.5.5  分组加密字符串 262
6.6  熟悉PKCS#1 266
6.6.1  PKCS#1填充 267
6.6.2  PKCS#1中的 RSA私钥语法 271
6.7  在OpenSSL命令中使用RSA 272
6.7.1  生成RSA公私钥 272
6.7.2  提取私钥各参数 273
6.7.3  RSA公钥加密一个文件 275
6.7.4  RSA私钥解密一个文件 276
6.8  基于OpenSSL库的RSA编程 276
6.8.1  OpenSSL的RSA实现 277
6.8.2  主要数据结构 277
6.8.3  主要函数 278
6.9  随机大素数的生成 287
6.10  RSA算法的攻击及分析 287
6.10.1  因子分解攻击 287
6.10.2  选择密文攻击 287
6.10.3  公共模数攻击 288
6.10.4  小指数攻击 288
第7章  数字签名技术 289
7.1  概述 289
7.2  什么是数字签名技术 291
7.2.1  签名 291
7.2.2  数字签名的基本概念 291
7.2.3  数字签名的原理 292
7.2.4  数字签名的一般性定义 292
7.2.5  数字签名的分类 293
7.2.6  数字签名的安全性 294
7.2.7  数字签名的特征与应用 295
7.3  RSA公钥算法在数字签名中的应用 295
7.4  使用OpenSSL命令进行签名和验签 296
7.5  基于OpenSSL的签名验签编程 298
7.5.1  直接使用RSA函数进行签名验签 298
7.5.2  使用EVP系列函数进行签名验签 304
第8章  椭圆曲线密码体制 310
8.1  概述 310
8.1.1  信息安全技术 310
8.1.2  密码体制 311
8.1.3  椭圆曲线密码体制 311
8.1.4  为什么使用椭圆曲线密码体制 313
8.2  背景基础知识 313
8.2.1  无穷远点 314
8.2.2  射影平面坐标系 314
8.2.3  域 316
8.2.4  数域 316
8.2.5  有限域 316
8.2.6  素数域 316
8.2.7  逆元 317
8.3  椭圆曲线的定义 318
8.4  密码学中的椭圆曲线 321
8.5  ECC算法体系 326
8.5.1  有限域的模运算 327
8.5.2  椭圆曲线上的点加和倍点运算 328
8.5.3  标量乘运算 333
8.5.4  数据加解密算法 336
第9章  CSP和CryptoAPI 350
9.1  什么是CSP 350
9.2  CryptoAPI简介 350
9.3  CSP服务体系 351
9.4  CSP的组成 353
9.5  CryptoAPI体系结构 353
9.6  CryptoAPI调用底层CSP服务方式 354
9.7  CrpytoAPI的基本功能 355
9.8  搭建CryptoAPI开发环境 356
9.9  基本加密函数 357
9.9.1  服务提供者函数 358
9.9.2  密钥的产生和交换函数 363
9.9.3  编码/解码函数 364
9.9.4  数据加密/解密函数 364
9.9.5  哈希和数字签名函数 364
第10章  身份认证和PKI理论基础 369
10.1  身份认证概述 369
10.1.1  网络安全与身份认证 369
10.1.2  网络环境下身份认证所面临的威胁 370
10.1.3  网络身份认证体系的发展现状 371
10.2  身份认证技术基础 373
10.2.1  用户名/密码认证 373
10.2.2  智能卡认证 374
10.2.3  生物特征认证 374
10.2.4  动态口令 374
10.2.5  USB Key认证 375
10.2.6  基于冲击响应的认证模式 375
10.2.7  基于数字证书PKI的认证模式 375
10.3  PKI概述 376
10.3.1  PKI的国内外应用状态 376
10.3.2  PKI的应用前景 377
10.3.3  PKI存在的问题及发展趋势 378
10.4  基于X.509证书的PKI认证体系 380
10.4.1  数字证书 380
10.4.2  数字信封 383
10.4.3  PKI体系结构 384
10.4.4  认证机构 387
10.4.5  基于X.509证书的身份认证 388
第11章  实战PKI 391
11.1  只有密码算法是不够的 391
11.2  OpenSSL实现CA的搭建 393
11.2.1  准备实验环境 393
11.2.2  熟悉CA环境 394
11.2.3  创建所需要的文件 396
11.2.4  CA 自签名证书(构造根CA) 396
11.2.5  根CA为子CA颁发证书 398
11.2.6  普通用户向子CA申请证书 401
11.3  基于OpenSSL的证书编程 403
11.3.1  把DER编码转换为内部结构体函数d2i_

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP