软件的奥秘:加密、密码、压缩、搜索是如何工作的

软件的奥秘:加密、密码、压缩、搜索是如何工作的

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

你每天都会使用软件,但是你清楚背后的原理吗?如果你感兴趣,这本书帮你讲明白。

内容简介

软件已经成为人们日常生活与工作中常见的辅助工具,但是对于软件的工作原理,很多人却不是非常了解。本书对软件的工作原理进行了解析,让读者对常用软件的工作原理有一个大致的了解。内容涉及数据如何加密、密码如何使用和保护、如何创建计算机图像、如何压缩和存储视频、如何搜索数据、程序如何解决同样的问题而不会引发冲突以及如何找出最佳路径等方面。

作者简介

作者V·AntonSpraul,已经为来自世界各地的学生讲授了15年以上的入门编程和计算机科学。同时他也是《Think Like a Programmer》(《像程序员一样思考》)和《Computer Science Made Simple》这两本书的作者。

章节目录

版权信息

内容提要

作者简介

技术审阅者简介

致谢

前言

第1章 加密

1.1 加密目标

1.2 换位法:相同的数据,不同的顺序

1.2.1 密钥

1.2.2 对加密的攻击

1.3 替换法:替换数据

1.3.1 变化替换模式

1.3.2 密钥扩展

1.4 高级加密标准

1.4.1 二进制基础

1.4.2 AES加密:概述

1.4.3 AES中的密钥扩展

1.4.4 AES加密处理流程

1.4.5 数据块链接

1.4.6 AES为什么是安全的

1.4.7 AES可能遭受的攻击

1.5 私钥加密的限制

第2章 密码

2.1 将密码转成数字

好的散列函数的特征

2.2 MD5散列函数

2.2.1 密码编码

2.2.2 按位运算

2.2.3 MD5散列流程

2.2.4 达到好的散列函数的标准

2.3 数字签名

2.3.1 身份问题

2.3.2 碰撞攻击

2.4 身份认证系统中的密码

2.4.1 危险的密码表

2.4.2 对密码进行散列

2.4.3 字典式攻击

2.4.4 散列表

2.4.5 散列链

2.4.6 迭代式散列

2.4.7 为密码“加盐”

2.4.8 密码表安全吗

2.5 密码存储服务

2.6 小结

第3章 网络安全

3.1 公钥加密是如何解决密钥共享问题的

3.2 公钥加密所需的数学运算

3.2.1 可逆函数(Invertible Functions)

3.2.2 单向函数(One-Way Functions)

3.2.3 暗门函数(Trapdoor Functions)

3.3 RSA加密法

3.3.1 创建密钥

3.3.2 使用RSA加密数据

3.3.3 RSA的效率

3.3.4 在真实世界中使用RSA

3.3.5 身份认证中的RSA

3.4 网络安全:HTTPS

3.4.1 握手

3.4.2 在HTTPS下传输数据

3.5 共享密钥的问题解决了吗

第4章 电影CGI

4.1 传统动画软件

4.1.1 数字图像是如何工作的

4.1.2 颜色是如何定义的

4.1.3 软件是如何制作cel动画的

4.1.4 从cel动画软件到渲染式的2D图形

4.2 3D CGI软件

4.2.1 如何描述3D场景

4.2.2 虚拟摄像机

4.2.3 直接光照

4.2.4 全局光照

4.2.5 如何进行光线追踪

4.2.6 全屏抗锯齿

4.3 真实与模拟相结合

4.4 理想化的电影级品质渲染

第5章 游戏图形

5.1 实时图形的硬件

5.2 为什么游戏不使用射线追踪

5.3 只有直线,没有曲线

5.4 不使用射线追踪来进行投影

5.5 渲染三角形

5.5.1 画家算法

5.5.2 深度缓冲

5.6 实时光照

5.7 阴影

5.8 环境光照和环境遮挡

5.9 纹理映射

5.9.1 最邻近采样

5.9.2 双线性过滤

5.9.3 Mipmaps

5.9.4 三线性过滤

5.10 反射

5.11 伪造曲线

5.11.1 远距顶替物

5.11.2 凹凸映射

5.11.3 曲面细分

5.12 实时抗锯齿

5.12.1 超级采样

5.12.2 多重采样

5.12.3 后期处理抗锯齿

5.13 渲染预算

5.14 游戏图形展望

第6章 数据压缩

6.1 游程编码

6.2 字典压缩

6.2.1 基本方式

6.2.2 哈夫曼编码

6.3 重组数据以获得更好的压缩

6.3.1 预测编码

6.3.2 量化

6.4 JPEG图像

6.4.1 颜色的另一种存储方式

6.4.2 离散余弦变换

6.4.3 二维DCT

6.4.4 对DCT处理结果进行压缩

6.4.5 JPEG图像质量

6.5 压缩高清视频

6.5.1 时间压缩

6.5.2 MPEG-2视频压缩

6.5.3 视频质量与时间压缩

6.6 视频压缩的现在和未来

第7章 搜索

7.1 定义搜索问题

7.2 将数据按序存放

7.2.1 选择排序

7.2.2 快速排序

7.3 二分搜索

7.4 索引

7.5 散列

7.6 网络搜索

7.6.1 为抓取到的网页结果进行排名

7.6.2 高效地使用索引

7.7 网络搜索的前景

第8章 并发

8.1 为何需要并发

8.1.1 性能

8.1.2 多用户环境

8.1.3 多任务处理

8.2 并发是如何出错的

8.3 使并发安全

8.3.1 只读数据

8.3.2 基于事务的处理过程

8.3.3 信号量

8.4 无限等待的问题

8.4.1 有序队列

8.4.2 循环等待造成的饥饿

8.5 信号量的性能问题

8.6 并发的未来

第9章 地图路径

9.1 软件中对地图的定义

9.1.1 最佳优先搜索

9.1.2 重用之前的搜索结果

9.2 一次找出所有最佳路径

9.2.1 弗洛伊德算法

9.2.2 存储路径方向

9.3 路径查找的未来

软件的奥秘:加密、密码、压缩、搜索是如何工作的是2017年由人民邮电出版社出版,作者[美]V.AntonSpraul。

得书感谢您对《软件的奥秘:加密、密码、压缩、搜索是如何工作的》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Python游戏趣味编程 电子书
1.易于学习和理解:先讲解较少的语法知识,通过游戏案例逐步引入新的语法知识; 2.为初学者量身打造:案例从易到难,所有程序的代码均不超过100行; 3.趣味性强:12个案例,涵盖了多种游戏类型,寓教于乐; 4.可拓展性强:提供练习题和参考答案,巩固知识,训练逻辑思维; 5.配套素材齐全:提供完整源代码和分步骤源代码、游戏素材、游戏效果演示视频,可通过异步社区观看游戏开发步骤讲解视频; 6.全彩印刷。 美国教育家杜威曾说过:“大多数的人,只觉得五官能接触的、实用的东西才有趣味,书本上的趣味是没有的。” 《Python游戏趣味编程》通过介绍12个由易到难的有趣游戏案例的编写过程,带领读者学习用Python开发趣味游戏,从而提升读者对编程的兴趣和能力。 《Python游戏趣味编程》把趣味游戏开发应用于Python编程教学,通过介绍12个由易到难的有趣游戏案例的编写过程,带领读者从零基础开始学习。全书共13章,系统讲解了Python语言基本概念、开发环境搭建、循环、列表、数据类型、条件、复合运算符、字符串拼接、布尔变量、数组、函数、列表操作、面向对象编程等基础知识,还介绍了图片操作、文件读写、声音播放、异常处理等较为实用的编程技能,所有这些知识和技能,都通过游戏案例展示其用法。贯穿各章,还给出了一些练习,帮助读者巩固所学的知识。附录A给出了这些练习题的答案,附录B给出了Python语法知识在书中相关章节的索引。 《Python游戏趣味编程》适合不同年龄、不同层次的Python编程初学者阅读和自学,也可以作为中学生、大学生学习程序设计的教材和少儿编程培训机构的参考教材。 本书适合以下人群阅读: 想要让孩子学习Python编程的家长,或者想要自己教孩子编程的家长。 学习过其他编程语言,想要快速学习Python的人。 对计算机游戏感兴趣,想要尝试Python游戏编程的人。 想要学习Python编程的中学生和大学生。 少儿编程培训机构的老师和学生。 任何对计算机编程感兴趣、特别是初次接触编程的人。 本书中制作和讲解的小游戏 弹跳的小球 美丽的圆圈画 疯狂的小圆圈 飞翔的小鸟 见缝插针 飞机大战 勇闯地下一百层 贪吃蛇 拼图游戏 消灭星星 坚持一百秒 趣味图像生成
现代软件工程:如何高效构建软件 电子书
深入探讨软件工程的原则和方法。
软件工程 电子书
软件工程基本原理、技术、方法与项目管理。
程序是怎样跑起来的(第3版) 电子书
一本书帮你了解从用户双击程序图标到程序开始运行之间到底发生了什么。
代码中的软件工程 电子书
本书共五篇:第一篇介绍常用工具VSCode、Git和正则表达式;第二篇以C语言代码为例介绍工程化编程的基本方法,涵盖代码的风格和规范、模块化、可复用、可重入函数与线程安全等;第三篇介绍从需求分析到软件设计的基本建模方法——从需求分析开始,以UML为工具完成用例建模、业务领域建模、对象交互建模,最终形成设计方案;第四篇探讨软件的元素、结构、特性和描述方法,以及高质量软件的内涵等;第五篇回顾软件危机的