打字猴:1.700509e+09
1700509000
1700509001
1700509002
1700509003 由于这些都是正整数,所以对只会做加法的电子计算机来说,还是能比较容易地得到解。
1700509004
1700509005 但是,要在破解公钥(本来就是公开的)的情况下拿到密文c来破解u,就只能根据
1700509006
1700509007
1700509008
1700509009
1700509010 来计算,也就是通过截获的N来分解质因数,得到p和q。
1700509011
1700509012 这个计算量在512位的RSA密钥上大概需要计算8000个MIPS(8)年才能破解。而随着电子计算机计算能力增加,在加密时只需要加长RSA密钥的位数就可以了。
1700509013
1700509014 一般来说,不论加密还是解密,RSA的运算成本比DES要高。所以,必须使用RSA这种级别算法的加密场合在对保密性要求不高的情况下很少见。
1700509015
1700509016 数据科学家养成手册 [:1700503609]
1700509017 12.2.4 压缩问题
1700509018
1700509019 在日志收集中还有一个问题需要考虑,就是数据压缩问题。
1700509020
1700509021 在互联网环境中,带宽的价格是比较昂贵的,如果CPU资源相对过剩,而带宽资源又比较紧张的话,可以考虑压缩后再将数据上传。如果上传的是日志文件,可以直接使用压缩软件或者自己编写的压缩算法进行压缩,然后通过FTP上传。
1700509022
1700509023 如果使用的是单条的日志数据,那么一般只能在自己编写的算法里实现。如果使用Python语言在客户端进行日志收集的话,可选择的库非常丰富。zlib就是Python语言环境中很常用的一个用于压缩和解压缩的库文件。
1700509024
1700509025 下面给出一段使用zlib进行压缩和解压缩的简单语句,由于通常是基于字典压缩,所以重复字符串越长,所占全文比例越大,压缩的效果就越好。凡是基于字典压缩,通常都会有这种经验——文件形式的内容比单条形式的内容压缩率更低,压缩效果更好。这段文字压缩前是228个字符,压缩后仅为26个字符。
1700509026
1700509027 #coding=utf-8import zlibsource=“xxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”compressed=zlib.compress(source)decompressed=zlib.decompress(compressed)
1700509028
1700509029 请注意,这里的压缩一般情况下都是无损压缩,所以压缩的数据肯定不会低于信息论的下界,也就是说,对“稀疏矩阵”的压缩效果尤为明显。我们看到的现象就是,如果文件中有大量重复信息,那么压缩出来的文件就非常小;而如果文件是被压缩过的,例如 .JPG文件、.MPEG文件等,则不管使用什么算法,压缩空间通常都很小。
1700509030
1700509031 数据科学家养成手册 [:1700503610]
1700509032 12.2.5 连接方式
1700509033
1700509034 在数据采集这个环节,还有一个问题需要讨论,那就是使用短连接还是长连接。这两种方式在互联网的应用中都广泛存在。
1700509035
1700509036 1.短连接
1700509037
1700509038 先说短连接(如图12-6所示)。
1700509039
1700509040
1700509041
1700509042
1700509043 图12-6 三次握手与四次挥手
1700509044
1700509045 在TCP协议栈中,连接的建立有标准的步骤,就是TCP协议栈规定的“三次握手”。这里有两个角色:一个是Server,它是被动方,所做的事情就是启动一个TCP端口的监听;另一个是Client,用于主动向服务方Server发起连接请求。
1700509046
1700509047 (1)当Server接收到Client发来的连接请求(SYN包)后,会回发一个SYN包,表示Server方已经准备好建立连接。
1700509048
1700509049 (2)在Client接收到Server发来的SYN包后,回送给Server端一个ACK包。这样,三次握手就建立了一个五元组连接,在Server端和Client端都会看到一个新五元组的建立。这个所谓的五元组是指“本地IP”、“本地Port”、“远端IP”、“远端Port”、协议类型”的组合,用来描述和管理一个独一无二的连接。有些文章中会使用“源地址”、“远端口”、“目的地址”、“目的端口”这样的说法,意思相同。
[ 上一页 ]  [ :1.700509e+09 ]  [ 下一页 ]