网站大量收购闲置独家精品文档,联系QQ:2885784924

信息论与编码第9信息论与编码技术的实现与应用.ppt

信息论与编码第9信息论与编码技术的实现与应用.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*学习理论知识,只是为应用提供一定的基础,实际上理论知识与应用知识并不能完全代替。此外,有时候理论知识与应用知识是独立的,比如一些算法,我们甚至于可以在不知道其原理的时候,就调用相关的函数、类库等,只是需要知道这些函数如何调用,有哪些参数、接口就行了。对于一些算法的软件实现(如果实现不是为了学习算法的目的,而是要真正使用该软件),我们建议无需自己按照算法一步一步去写代码,而是直接调用比较出名的函数、类库,它们不仅对一些现实问题提供了很好的解决方案,而且代码上也比较优化,也避免了一些错误。一个好的程序员,应该学会读代码,而且要多读代码,善于引用别人的代码,大型系统中代码量很大,许多复杂的实现不可能自己一一去写代码,借鉴、整理、组合他人代码是最好的方法。在实现与应用中,书本上的知识未必特别有用,而且许多教材上对于应用中必然遇到的问题都缺乏必要的说明,这是有违于一般本科生的就业背景的。本章提供了一些应用相关的知识或给予指引。9.1密码算法编程实现指引密码算法相关实现需要善于寻找方法,一般的情况下,我们并没有必要将所有的算法自己用代码实现。首先,我们应该考虑的是,系统是否附带了相应的功能,比如EFS加密系统在一般的系统中都是附带的,我们只需要用即可。安全套接字(SSL)在浏览器中一般都有集成,我们只需要在目录安全性中做相应的配置即可,虚拟专用网(VPN)在许多操作系统中也是集成的,其服务端和客户端都只需要进行相应的配置。如果没有这样的条件,则我们可以考虑自己编程实现。但是在编程实现过程中,依然要充分利用前人成果:第一、利用前人建立的加密算法代码库,许多代码是开源免费的或非商业应用免费,不存在版权等方面的风险,如GNUCrypto、Cryptlib等;第二、调用相关的API和函数,比如,加密可以用cryptapi;第三,利用一些类库,如.Net的,java的security类;第四,有些诸如OpenSSL之类的软件包也提供相应的函数,可以调用相关的加密函数;第五,参考一些公开的源代码,比如PGP的代码就是公开的。对于无损的数据压缩,一些类库可以调用。网络上也有一些已经写好的代码可供参考、引用,特别是一些开源代码中的压缩实现。从.NET2.0开始,微软提供了一个的NameSpace,下含有GZipStream和DeflateStream,都具有压缩和解压功能,但是不支持zip和rar等常用的压缩文件。对于rar格式,我们可以直接利用WinRAR提供的rar.exe/unrar.exe(此文件在winrar的安装目录下,是一个console程序)。其调用的方法可以参考帮助文件。其常规的命令行语法描述如下:WinRAR命令-开关1-开关N压缩文件文件...@列表文件...解压路径\相关的命令和开关请参考RAR的帮助文档中的命令行模式下的内容。对于zip格式,C#类库包含两个类ZipClass和UnZipClass,可以实现zip的压缩解压,也可以使用开源免费的SharpZipLib。Java下也有相关的压缩类,比如,ZIP压缩、JAR压缩、GZIP压缩。有损压缩有时候有针对性,而且有时候涉及到格式的改变,比较复杂,纠错编码一般在应用中无需额外补充,所以它们的相关资源要少许多,不过有一些具有针对性的转换文件格式的有损压缩工具。信息论的编码主要考虑压缩和可靠性问题,但是现实的字符编码则需要考虑一些现实的制约因素。在应用软件或者是编程的时候,经常会遇到各种字符编码,下面我们介绍字符的各种编码。在数据加密的时候,也会需要将基于任意二进制的字节流转换为字符流,这就涉及到字符编码的选择。ASCII码全称为美国信息交换标准代码(AmericanStandardCodeforInformationInterchange,ASCII),这是计算机上最早使用的通用的编码方案。由于那时候没有考虑到使用很多的语言符号,所以涉及到的字符很少。这种编码占用7个Bit,实际在计算机中考虑计算机存储的最小单位是字节,所以占用8bit,最高位没用,通讯的时候有时用作奇偶校验位。因此ASCII编码的取值范围实际上是:0x00-0x7f,只能表示128个字符。后来发现128个不太够用,做了扩展,叫做ASCII扩展编码,用足八位,取值范围变成:0x00-0xff,能表示256个字符。其实这种扩展意义不大,因为256个字符表示一些非拉丁文字远远不够,但是表示拉丁文字,又用不完。所以扩展的意义还是为了下面的ANSI编码服务。ANSI码译为美国国家标准学会(AmericanNationalStandardsInstitute)的标准码。ANSI字符集定义为ASCII字符集,以及由此派生并兼容的字符集,如:GB

文档评论(0)

135****6917 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档