-
《剑指offer》-[第3章:高质量的代码- 3.3:代码完整性] 题11:数值的整数次方
2019-06-27 17:02:47首先,什么是代码的完整性,代码的完整性是指代码是否完成了基本功能,输入边界值是否能得到正确的输出,是否对不合规范的非法输入进行了合理的错误处理。 那么应该怎么来保证代码的完整性呢?我们通常从功能测试,...1、如何保证代码的完整性?
首先,什么是代码的完整性,代码的完整性是指代码是否完成了基本功能,输入边界值是否能得到正确的输出,是否对不合规范的非法输入进行了合理的错误处理。
那么应该怎么来保证代码的完整性呢?我们通常从功能测试,边界值测试,以及负面测试三个方面来设计测试用例,以保证代码的完整性。
2、错误处理的方法有哪些?
通常有三种方式来告诉函数的调用者错误信息,第一种是通过函数的返回值。比如window的API中通过返回0表示调用成功,非0表示调用出错;这种方式的缺点是不能把函数的计算结果通过返回值赋值给其他变量或作为参数传递给其他函数。第二种是错误发生时设置一个全局变量,这样,调用者可以通过分析全局变量来得知出错的原因;第三种方式是异常。这三种方式的优缺点对比如下:
3、问题描述
实现一个函数Power(float base,int exponent),求base的exponent次方,其中base为浮点数,exponent为整型数。
4、解题思路
- 思路1:这道题的需要考虑的情况比较复杂,需要考虑base为0和非0,exponent 为正整数、负整数和0的情况:
- (1)base为0.0,exponent 为负数,返回错误;
- (2)base为0.0,exponent 为0和正数,返回0;
- (3)base 非零,exponent 为0,返回1(这里认为0的0次方是1);
- (4)base非零,exponent为正;
- (5)base非零,exponent为负,结果为base的exponent的相反数次方的倒数
- 在计算base非零,exponent为正的情况下的结果时,可以利用分治思想的快速幂方法:
5、代码实现
# -*- coding:utf-8 -*- class Solution: def Power(self, base, exponent): # write code here # 底数为零,指数小于零。 if self.Equal(base, 0.0) == True and exponent < 0: return 0 #指数为零 if exponent == 0: return 1 if exponent == 1: return base if exponent == -1: return 1.0/base absexponent = exponent if exponent < 0: absexponent = 0 - exponent halfexponent = absexponent >> 1 if exponent < 0: halfexponent = 0 - halfexponent result = self.Power(base, halfexponent) result *= result if exponent & 0x1 == 1: if exponent < 0: result *= 1.0/base else: result *= base return result def Equal(self, num1, num2): if (num1 - num2) > - 0.0000001 and (num1 - num2) < 0.0000001: return True else: return False
-
信息安全基础知识(一)保密性,完整性,端点认证
2014-11-04 17:33:08通信安全的特性或者说是分类有以下三个主要类别:保密性,完整性,端点认证 保密性 大多数人认为安全就是考虑保密性。保密性的意思就是对无关的听众保密,通常听众是指窃听者。当政府监听你的电话就会对你的保密性...大家在谈到安全时,都会觉得安全是协议的一项孤立的特性,在面试时候也会问到你知道哪些协议,可见安全和协议被认为是一体的。事实如何呢,我也在探索,来吧开始安全知识扫盲吧!
通信安全的特性或者说是分类有以下三个主要类别:保密性,完整性,端点认证
保密性<消息不能被泄露给其他无关的人>
大多数人认为安全就是考虑保密性。保密性的意思就是对无关的听众保密,通常听众是指窃听者。当政府监听你的电话就会对你的保密性构成威胁(同时这也是一种被动攻击,除非联邦调查人员开始试图在线路上模仿你的声音。)
显然,如果你有秘密的话,就会希望没有别人知道这些秘密,所以你最少也需要保密性。电影中常看到间谍在洗手间打开所有水龙头来扰乱窃听者,他们所寻求的特性就是保密性。
完整性<消息是完全正确的,不多不少不被篡改>
第二个重要的目标就是消息的完整性。这里的基本思想就是,我们想确认自己所收到的消息是从发送者那发送的消息。在纸制系统中会自动带有一的消息完整性。当你收到一封钢笔写的信时,由于钢笔印记很难从纸张上去除,所以你完全可以肯定没有抹掉的词语,然而,攻击者可以很容易地在信中增加一些笔记来彻底改变信息的原意。
另一方面,在电子世界中,由于所有的位看上去都是相似的,所以在传输过程中摆弄起信息来简直就是小菜一碟。你只需将信息从线路中去除,拷贝你想要的部分,随意增加什么数据进去,然后就可以产生一条由你挑选的新信息,而接收者却一无所知。这与攻击者拿到你写的信,买一个新的信纸,然后把消息修改后重新拷贝纸上是一样的。只是采用电子方式则要容易得多。
端点认证〈发送者和接收者必须是对的,但是认证可以单方认证,不一定是双方都需要,这得看情况〉所关心的第三个特性是端点认证。通过它所要到达的意图就是要知道通信中的某个端点(通常为发送者)就是我们所指的那个端点。没有端点认证,要提供保密性和消息完整性就非常空难。例如,如果我们收到一份来自alice的消息,但无法确认该消息是由Alice而不是攻击者发送来的话,那么消息完整性对我们来说就不会有任何意义。与之类似,当我们想Bob发送一份机密消息。假如我们实际上是将机密消息发送给了攻击者的话,对我们来说也就没有什么意思可言了(但是如果做好了保密性,至少不会泄露消息的内容给攻击者,只是没有发送给正确的人,也给攻击者提供了一份可研究的加密资料)。
注意端点认证可以以非对称的方式提供。当你给某人打电话时,你可以确信接电话的人是谁——或者实际上至少也是处在你所拨叫的电话号码位置的人。另一方面,如果接电话者没有主叫识别,那么他们也不会知道是谁在给自己打电话。给某人打电话是一个接收方认证的例子,这里你知道接电话的人是谁(要想突破电话网的安全是困难的,但也不是不可能的),但是对方却不知道发送方是谁。
下一讲:信息安全基础知识(二)消息摘要与数字签名
从另一个角度来讲,现金就是一个发送端认证的例子。一张美圆现钞就像是政府签名的消息。政府并不知道是谁拿到了给定的钞票,但是你却可以深信钞票实际上是由US Mint印刷的。原因就是货币很难伪造。 -
什么是网站安全?网站安全保障有哪些方式?
2020-04-07 15:41:39那我们来说说什么是网站安全,网站安全是指对网站进行管理和控制,并采取一定的技术措施,从而确保在一个网站环境里信息数据的机密化、完整性及可使用性受到有效的保护。 那么网站安全有哪些手段呢? 第一不使用来源...随着计算机的技术的高速发展,人们的生活、工作越来越依赖互联网上的信息发布和信息获取,但是人们却时刻被信息网络的安全隐患所困扰,越来越多的人也开始关注网站安全。
那我们来说说什么是网站安全,网站安全是指对网站进行管理和控制,并采取一定的技术措施,从而确保在一个网站环境里信息数据的机密化、完整性及可使用性受到有效的保护。
那么网站安全有哪些手段呢?
第一不使用来源不明的模板网站。有的人可能是嫌价格便宜,可能想这已经是做好的,不需要在花费更多的时间在程序上,只需小小改动就可以使用,就随随便便在网上找一些能用的模板框架。但你不知道的是在网站已知的那些被大众所熟知的框架,往往都是开源免费的,被很多人所使用和熟悉,这就会导致一些不法分子去分析这些开源的代码,然后去查找里边的漏洞,进而去达到一些不可告人的目的。而定制型的网站多数都是针对客户的个人需求来单独开发的,能更好的提高网站的稳定性,提升网站的安全性。
第二对网站进行不定时查看和进行数据备份。很多客户在网站上线以及上传好资料以后,就不在管理网站了,可能很久都不会去查看一下网站。这个行为是非常不可取的。因为如果网站被黑客攻击了,都很难及时的发现,更不要说处理。所以我们应该时常的去登录自己的网站来检查一下,看看它有没有被黑客入侵。同时,如果网站有上传一些比较重要的资料,我们需要定期的去进行数据备份。这样即使网站被人攻击了,我们也能第一时间有效的解决问题。
第三关于网站服务器的安全管理。由于网站服务器是对外开放的,容易受到病毒的攻击,因此需要利用防火墙工具和漏洞检测工具,加强对服务器安全管理和检查。同时,随着新漏洞的出现,服务器要及时安装关于各类漏洞的补丁程序,从而比避免服务器收到外界攻击和出现异常情况。
为防止网站经常被黑,如何去加强网站的安全性呢。
一、修改网站后台路径。为什么说要修改网站后路径,像admin.data这种类型的后台路径,很多网站都在使用,这就像在透明玻璃上盖了一层纸,一戳就破,一旦后台被攻破,就会导致网站数据丢失的问题。因此建议使用复杂一点的路径,这样能更好的提升网站安全,避免数据丢失。
二、服务商为了方便管理网站,往往会建立一个默认账号,在进行网站建设时使用的都是同一套源代码,这样就存在所有网站的后台默认账号和密码都是一样的,一旦被黑客攻破一个,就相当于破解了N个网站。所以在进行网站开发时,需要删除系统默认的账号密码,可以新建一个复杂的账号,密码经过三层MD5加密,防止黑客盗取密码。
三、网站不要留下后台路径。如果在网站上留下后台路径,这就像直接把大门打开,让小偷光明正大的进行盗窃。
四、防止Ftp账号密码泄露。Ftp是把网站文件传输到服务器的远程传输工具,一旦密码泄露,就会使网站文件处在一个非常危险的地步,如果文件没有进行过备份情况下出现文件被删,就会导致网站出错,严重一点来说这样会失去一个客户资源。所以在使用Ftp工具的工程中,我们要保障网站文件的安全,就需要加强密码的复杂程度和意外泄漏。
五、网站部署完成后,在给用户配置账号密码时,建议使用复杂的混合密码。很多人喜欢使用单纯的数字、字母,甚至重复使用一个字符,虽然密码位数比较长,好像很难被破解出来,但其实不然,单纯的数字和字符更容易被破译,有的人习惯使用a、b、c、d或者1、2、3开始,但这一点刚好满足了暴力破解的破解顺序,因为它们就是按照字母和数字的自然排序进行计算。
六、对网站数据和文件进行定期备份。数据库和web分开部署,分开备份,这样更利于数据安全。如果把数据库和web文件部署在同一台服务器上,如果服务器被攻破,就到导致整个网站所有的数据和文件全部丢失。
随着Web应用越来越广泛,Web服务器逐渐成为攻击的重点目标。如:网页篡改、敏感信息泄露、拒绝服务、蠕虫、SQL注入、跨站脚本攻击等等事件频繁发生。虽然通过统一部署边界防火墙和杀毒软件等,使系统具备了初步的网络安全防范能力。但是针对于Web应用层的安全未采用任何有效地防护措施,Web程序的漏洞普遍存在,类似SQL注入漏洞,跨站攻击漏洞被黑客通过相应的攻击工具可以轻松实现渗透,从而篡改页面,甚至进入数据库修改内容等等。
那么在这种情况下,我们要怎么做呢?可以使用安全狗,在网站平台系统可用性和信息可信任的角度,它可以解决WEB防护及加速、内容防篡改、流量分析和管理、异常流量清洗、负载均衡等核心需求,提供事前预警、事中防护、事后分析全周期安全防护解决方案。
近年来因为DDoS攻击力度越来越猛,网站被劫持的的情况也越来越多,使用HTTPS对于网站来说也日趋重要。为什么要推荐使用https呢,第一可以使网站更安全,SSL/TL证书让网站实现加密传输,可以很好的防止用户隐私信息如用户名、密码、交易记录、居住信息等被窃取和纂改。第二有利于SEO优化,因为从网站安全和用户体验角度来考虑,HTTPS比Http更优质、更安全,这就会导致百度搜索在做索引的时候会优先展现用户较好的页面,所以在一般网站尽管花费较久时间去做SEO优化,但百度收录的速度却很慢,就是因为网站使用了http协议,用户信任度不够导致的。第三HTTPS具有加密传输通道,有效保障隐私数据密文传输,截取也无法解密。尤其是在线支付的商城类网站,使用https就显得极为重要,这样用户在进行支付时的数据传输才会得到安全保障。
本文属作者个人的理解,如有不恰当的地方,欢迎大家留言指正。 -
数字证书是什么,主要应用于哪些方面?
2020-12-18 15:09:38数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。 因此数字证书又称为数字标识。数字证书对网络用户在计算机网络交流中的信息和数据等以加密或解密的形式保证...数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。 因此数字证书又称为数字标识。数字证书对网络用户在计算机网络交流中的信息和数据等以加密或解密的形式保证了信息和数据的完整性和安全性。数字证书的应用非常广泛,主要归类维以下几个方面:
1、安全电子邮件
电子邮件中使用数字证书可以建构安全电子邮件证书,主要用户加密电子邮件的传输,保护电子邮件在传输和接收过程中的安全。安全电子邮件证书主要有证书持有者的CA机构的签名、电子邮件地址和公开密钥这些信息。一方面,数字证书与电子邮件结合后,就可以在安全电子邮件证书的加密和数字签名技术的保护下,实现电子邮件的安全传输和接收,保证了电子邮件的安全性和完整度。同时,也保证了电子邮件传输方和接收方信息的真实性。另一方面,安全电子邮件证书中包括公开密钥这一信息,就能够确保电子邮件不被更改,因为只有知道公开密钥才能使用电子邮件。
2、安全终端保护
随着计算机网络技术的发展,电子商务的发展也越来越快,在人们生活和生产中的应用也越来越广泛,用户终端和数据的安全问题也日益受到重视。为了避免终端数据信息的损坏或者是泄露,数字证书作为一种加密技术,可以用于终端的保护。
首先,使用正版的软件和硬件,正确配置系统和网络并定期进行检查,防止终端配置被非法篡改。其次,利用网络安全技术如防火墙对内外网络进行实质性的隔离。同时,及时更新病毒库和防病毒软件,对终端系统实时进行病毒和安全漏洞的扫描,加强对终端系统的安全保护。一旦发现可疑信息,就要立即重点监控,防止其带来的影响和破坏。最后,加强访问终端的控制,利用加密和认证等手段加强信息破解的难度。用户可以设置一个以数字证书为主的系统登录方式,加上动态加密,就可以实现对系统的验证,没有权限的用户就无法进入终端系统的访问,拥有权限的用户就符合了访问的要求,保证了访问终端的一致性。另外还要做到终端网络和主网络的分离,减少两者之间的数据交叉和结合,也避免了终端网络和主网络的相互影响,减少风险。
3、代码签名保护
网络信息推广对很多用户来说,便捷有经济,但对软件的安全是不确定的。比如,用户对软件进行分享时,软件接收和使用过程中存在着很多不安全因素,即使软件供应商能够保证软件自身的安全性,但也无法抵制盗版软件和网络本身存在的不安全因素带来的不利影响。
4、可信网站服务
我国网站的数量伴随着计算机网络技术的发展呈现出日益增长的趋势,其中的恶意网站、钓鱼网站和假冒网站也越来越多,这就增加了用户对它们识别的难度,一不小心就会将自身的数据信息泄漏,严重影响了网络的安全。当用户对所使用的网站存在疑虑,不确定其中是否有被篡改和侵袭时,就可以利用数字证书的技术。通过数字证书技术,就可以对不确定的网站先进行验证和检查,增加了使用安全网站的机率,也避免了恶意网站、钓鱼网站和假冒网站等对网络造成的损失。
5、身份授权管理
授权管理系统是信息系统安全的重要内容,对用户和程序提供相对应的授权服务,授权访问和应用的方法,而数字证书必须通过计算机网络的身份授权管理后才能被应用。因此,要保证身份授权管理工具的安全性。当系统双方相互认同时,身份授权系统的工作才能展开。同时,正确使用数字证书,适当授权,完成系统的用户认证,才能切实保护身份授权管理系统的安全性。
-
史上最全的后端技术大全,你都了解哪些技术呢?
2019-10-07 07:43:17高内聚指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。模块的内聚反映模块内部联系的紧密程度。 模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低... -
需求测试注意事项有哪些
2017-11-16 19:29:06完整性:每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。 正确性:每一项需求都必须准确地陈述其要开发的功能。 一致性:一致性是指与其它软件需求或... -
需求测试注意事项有哪些?
2009-07-18 14:14:00一个良好的需求应当具有一下特点:完整性:每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。 正确性:每一项需求都必须准确地陈述其要开发的功能。一致性:一致... -
Java经典入门教程pdf完整版
2020-09-03 17:00:26的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证 类符合JWⅦM规范的类文件格式 无访问限制异常 代码木引起操作数栈上溢或下溢 所有操作代码的参数类型将总是正确的 无非法数据转换发生,如将... -
(完整版)多媒体技术基础与应用习题及参考答案.docx
2020-09-28 08:31:02多媒体计算机中的媒体信息是指 ( ) 数字文字 声音图形 动画视频 图像 全部 2.多媒体技术的主要特性有 ( ) 1多样性 2集成性 3交互性 4可扩充性 1 1 2 1 2 3 全部 3.目前音频卡具备以下哪些功能 录制和回放数字音频... -
关于公司采购网络存储设备的可行性分析
2012-09-20 11:12:18(2)具有较好的数据完整性,可用性,和可靠性,特别时候适合于用作备份和灾难恢复的镜像站点,最远可达10公里。 (3)使用可靠的SCSI协议进行连接,而不是NFS,FTP,HTTP,CITFS之类的网络协议。 (4)强调的是集中... -
数据库表的约束
2017-04-24 11:11:00须要考虑数据的完整性(数据的完整性是指数据的正确性和一致性)。举个样例:当你要为学生建立一个基本信息表StudentInfo时,这个表中学生的名字能够同样可是学号必须不一样,而他的年龄也得限制在一定范围内,像... -
电子商务安全课后习题答案王丽芳主编.pdf
2020-08-12 03:37:49电子商务的安全要素有哪些作用是什么 A 可用性 需要的时候资源是可用的 电子商务系统中主要有硬件软件和数据资源资 源的可用性是指需要这些资源的时候这些资源是可用的 B机密性 谁有权力查看特定的信息 C 完整性 允 -
电子商务安全课后习题答案.docx
2020-11-08 20:13:55子商 的安全要素有哪些作用是什么 A 可用性 需要的 候 源是可用的 子商 系 中主要有硬件 件和数据 源 源的可用性是指需要 些 源的 候 些 源是可用的 B 机密性 有 力 看特定的信息 ? C 完整性 允 修改数据不 -
办公室文员和秘书的区别.doc
2021-01-15 22:04:35它包含了从企业基础文书、专职文秘到高级行政秘书等一个完整的行政辅助人员体系,要求从业人员具备较强的文字和语言沟通能力,综合协调与合作能力,逻辑思维和分析能力等,是实行就业准入的职业之一。随着社会的高速... -
计算机与网络安全基本概念
2021-01-24 20:45:56计算机安全是指对于一个自动化的信息系统,采取保护措施确保信息系统资源(包括软硬件、固件、信息、数据和通信)的完成性、可用性、保密性。 保密性(Confidentiality) 数据保密性:确保隐私或者秘密的信息不被非授权... -
《软件测试》[(美)Ron Patton]第十三章阅读总结
2020-12-07 23:18:36安全产品是指产品在系统的所有者或管理员的控制下,保护用户信息的保密性、完整性、可获得性,以及处理资源的完整性和可获得性。 安全漏洞是指使产品不可行的缺陷——即使是正确地使用产品时——来防止攻击者窃取... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型... -
密码学与网络安全课程习题集及参考答案(一些思考题)
2016-12-06 22:10:571、 请分别举例说明什么是保密性原则?完整性原则?认证原则?...(2) 完整性原则是指信息不经过授权,不能被修改的特性,即信息在传输的过程中不能被偶然或蓄意的修改、删除或者插入,即不能被篡改 -
数据库系统原理期末考试简答题.docx
2020-07-06 13:34:56①物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。也就是说,数据在数据库中怎样存储是由数据库管理系统管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理... -
加密 解密过程详解及openssl自建CA
2014-08-02 22:39:45加密 解密过程详解及openssl自建CA为了数据信息能够安全的传输要求数据要有...NIST(美国信息安全署)做了如下的定义:保密性: 1,数据的保密性指的是数据或隐私不向非授权者泄漏2,隐私性信息不被随意的收集完整... -
操作系统 安全
2011-12-27 15:25:41对计算机系统安全性的威胁有哪些? 自然灾害 计算机系统自身的软硬件故障 合法用户使用的不当 非法用户对计算机系统的攻击 ...完整性:指信息必须按照原型进行保存,不能被有意或无意的修改。只有授权用户才能 -
清华大学的计算机网络课件
2010-03-26 11:11:56而计算机网络所讨论的透明传输,是指比特流看不见电路的存在。这样看来,两种“透明”的意思很不一样。应当怎样理解? 问题1-25:怎样才能知道哪些RFC文档已经成为因特网的正式标准(草案或建议标准)? 问题1-26:... -
岗位说明书编写流程.doc
2020-12-27 09:30:13一、岗位工作分析 岗位工作分析也就是岗位分析,即是指对某工作进行完整的描述或说明,以便为人力资源管理活动提供有关岗位方面的信息,从而进行一系列岗位信息的收集、分析和综合的人力资源管理的基础性活动。... -
GIS地理定位系统的解释
2010-05-08 20:52:37GIS地理信息系统是以地理空间数据库为基础,在计算机软硬件的支持下,运用系统工程和信息科学的理论,科学管理和综合分析具有空间内涵的地理数据,以提供管理、决策等所需信息的技术系统。简单的说,地理信息系统... -
操作系统概论第四章文件管理习题解答.pdf
2020-07-20 16:14:04操作系统概论 习题解答之第 4 章文件管理 第 4 章 习题解答 1什么叫文件 答所谓文件是指逻辑上具有完整意义的信息集合 2文件系统应具有哪些功能 答文件系统主要是实现按名存取 为了能正确地按名存取文件系统 具有... -
数据库系统概论(第四版)学习指导与习题解答-王珊.
2011-10-24 18:21:32DBMS 在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。数据库系统的出现使信息系统从以加工数据的程序为中心... -
数据库系统概论第四版答案
2011-10-24 18:22:19DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、 安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点 是很多的,既便于数据的集中管理,控制数据...
-
PowerBI重要外部工具详解
-
Python函数库深度详解(1)
-
java面试编程题_java面试中的编程题
-
springboot 集成CAS 实现单点登录
-
MySQL 高可用工具 DRBD 实战部署详解
-
2021-03-03
-
EEMD-ICA方法可增强噪声多变量神经数据的伪像抑制
-
java 项目多版本管理_java – 最佳实践:多项目中的版本控制和发布
-
杨氏矩阵第K小/查找目标数字
-
QSS样式表之PS黑色风格+白色风格+淡蓝色风格
-
谷歌代理服务器如何换ip?
-
thinkPhp5.0 时间戳转换为日期
-
SQL Server日期函数
-
图匹配的分支路径跟随
-
Spring Boot线程池
-
及时的在线正则化极限学习机。
-
vue3从0到1-超详细
-
中医之星_V1.0.zip
-
STM32 CH452软件IIC驱动程序
-
java面试的数据结构_java面试时的一个数据结构问题