28
2025
12

私钥和公钥的应用例子

假如现在 Alice 向 Bob 传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对传送的信息进行数字加密和签名,其传送过程为:
1.Alice 准备好要传送的数字信息(明文);
2.Alice 对数字信息进行哈希运算,得到一个信息摘要;
3.Alice 用自己的私钥对信息摘要进行加密得到 Alice 的数字签名,并将其附在数字信息上;
4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文;
5.Alice 用 Bob 的公钥对刚才随机产生的加密密钥进行加密,将加密后的 DES 密钥连同密文一起传送给Bob;
6.Bob 收到 Alice 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 Alice随机产生的加密密钥;
7.Bob 然后用随机密钥对收到的密文进行解密,得到明文的数字信息,然后将随机密钥抛弃;
8.Bob 用 Alice 的公钥对 Alice 的数字签名进行解密,得到信息摘要;
9.Bob 用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要;
10.Bob 将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。


25
2025
12

windows程序设计第5版

windows程序设计第5版  一本很经典的计算机编程书记,全书所用编程环境为VC6.0+PSDK(platform sdk2003)。psdk有300多M,安装完后也得700M-1G吧。如果不安装PSDK的话,编译会通不过,书中所有例程均为.c语言源文件组成。用windows API编程。windows 95的API就有2000多个,估计windows2000以上的版本的API得有3000-5000个。也可以不安装PSDK,用我修改后的C++版本代码编译。下面是书籍和代码的下载地址。当初为了把.c修改成.c++.忙到凌晨2点多。但是用c++版本的代码编译可以省去安装PSDK的麻烦。通过这本书,让我看到了编程语言只是工具,SDK提供的API函数调用接口才是应用程序的底层组成。编程语言只是完成逻辑功能和操作系统函数API调用,以及自身编程语言库函数调用。连接器link完成了该操作系统平台应用程序(对windows程序为.exe)的生成。

    下面是电子书和源代码以及相关工具下载地址:

    windows程序设计第五版(英文版):http://pan.baidu.com/share/link?shareid=781627673&uk=67362253

    windows程序设计第五版(中文版):http://pan.baidu.com/share/link?shareid=788295789&uk=67362253

    windows程序设计第五版源代码C++:http://pan.baidu.com/share/link?shareid=792612012&uk=67362253

    windows程序设计第五版源代码C:http://pan.baidu.com/share/link?shareid=798684125&uk=67362253

    windows平台 PSDK 支持VC6.0的最后一个版本:http://pan.baidu.com/share/link?shareid=805831973&uk=67362253

    windows平台SDK编程:http://pan.baidu.com/share/link?shareid=812916676&uk=67362253


25
2025
12

C语言之父

   在日益纷繁复杂的程序设计语言王国中,C语言因其简洁、有效、通用的特性而始终占据一席之地。被誉为“C语言之父”,同时也是操作系统Unix之父的C语言发明人之一丹尼斯·里奇(D.M.Ritchie)2011年10月9日以70岁之龄辞世。
  生于1941年9月9日的丹尼斯·里奇曾在哈佛大学学习物理学和应用数学,1967年他进入贝尔实验室,并曾经担任朗讯技术公司系统软件研究部门的.人。
  1983年,美国计算机协会将当年的图灵奖破例颁给了作为软件工程师的肯·汤普逊与里奇,获奖原因是他们“研究发展了通用的操作系统理论,尤其是实现了Unix操作系统”。并且,美国计算机协会当年还决定新设立一个奖项软件系统奖,以奖励那些优秀的软件开发者,首个软件系统奖当然也是非他们两人莫属。
  尽管通过Unix拿奖拿到手软,但令里奇引起最大关注和反响的则是C语言的问世。1999年,里奇和汤普逊为发展C语言和Unix操作系统一起获得了美国国家技术奖章。
  虽然在C语言之后,C++、Java等各式各样计算机高级语言层出不穷,但不少程序员仍旧认为,C语言简洁、高效、灵活的特性令其具有独特魅力。“现在的程序编写朝着越来越冗长庞大的方向发展,而C语言虽然属于相对‘低级’的编程语言,但它的简洁之美是无可替代的。”一位电脑程序员道出了自己格外青睐C语言的原因。
  和里奇所创造的C语言一样,Unix系统也同样具有简洁、朴素、小巧的特性。但正如里奇自己所说的那样,“Unix系统是一个简单基本的操作系统,但学会欣赏简洁需要天赋。”而里奇本人,尽管在软件发展史上占有举足轻重的地位,也同样在从事的领域辛勤而低调地耕耘近40年。
  在悼念里奇的论坛上,众多粉丝表达了对这位“C语言之父”常年坚持的敬意,一位粉丝留言表示:“感谢丹尼斯·里奇,令我们拥有这一简洁而美丽的语言。”
  而谷歌工程师派克则在Google+中称:“我获知丹尼斯·里奇在忍受了长期的病痛折磨后在家中去世。此外,我没有获得更多的信息。”
  延伸阅读
  “C语言之父”也是“黑客之父”
  由于C语言和Unix两项成就,里奇成为许多编程爱好者膜拜的对象。里奇在1978年出版的《C程序设计语言》被程序员们称为“白皮书”,获得狂热拥戴。
  然而,由于C语言的简洁和高效,也成为入侵他人电脑的利器之一。里奇因此被诸多电脑黑客尊为导师,虽然里奇本人并不认可这一说法。
  在Unix研发成功后不久,安装了这一程序的PDP-11被放在贝尔实验室供大家使用。有一天,大家发现两位创始人总是可以得到最高的权限轻松进入他们的帐户,在贝尔实验室这种高人云集的地方,这简直是太不能容忍的事情了。于是,若干愤懑的同事仔细分析Unix代码,找到后门,修改后再重新编译整个Unix程序。当所有人都以为这个世界应该从此清静了的时候,却发现他们的帐户权限还是很容易泄露。直到很多年后,肯和里奇才道出其中的原委原来代码里确实存在后门,不过并不在Unix代码中,而是藏在编译Unix的编译器里。
  为玩游戏研成C语言
  作为一门伟大的编程语言,C语言是借助Unix操作系统的翅膀而起飞的,Unix操作系统也由于C语言的存在而得以快速落地生根,两者相辅相成,成就了软件史上最精彩的一幕。
  不可思议的是,当初Unix这个操作系统的诞生,并不是为了推向市场,甚至不是为了让更多人使用,而仅仅是作者为了方便自己使用,而且初衷是为了能更流畅地玩游戏。连Unix这个别扭的名字,也是对早期一个名为Multics操作系统开玩笑的称呼。
  1967年,里奇参与的第一个项目是Multics,这是一个操作系统项目,被设计在大型计算机主机上运行,但是由于整个目标过于庞大,糅合了太多的特性,Multics的性能很低,最终以失败而告终。Multics项目的开发者之一肯·汤普逊则继续为GE-5开发软件,并最终编写了一个新操作系统项目,能够支持同时的多用户操作,也就是后来的Unix。
  在不经意间,奇迹诞生了,由于Unix诸多优点,人们将它称为软件中的瑞士军刀。这再一次验证了IT业的创新往往是兴趣,而不是大把大把的金钱使然。
  最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的,在移植的过程中遇到不少麻烦。早在对Multics项目调整过程中,就迫切需要一门高级计算机语言做工具,为了解决程序的可移植性问题,肯·汤普逊和丹尼斯·里奇决定对它进行简单改进,形成NB语言。但NB在Unix的移植方面依然不尽人意,此后里奇又对NB语言做了改进,C语言诞生。
  这被计算机界认为是一个划时代的动作,C语言让Unix能够轻易地被移植到各种不同的机器上,为Unix的迅速普及立下汗马功劳。