单播、多播 (组播) 和广播

单播、多播 (组播) 和广播 https://blog.csdn.net/wangerge/article/details/3931491 单播、多播和广播单播" (Unicast) 、“多播” (Multicast) 和"广播" (Broadcast) 这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在? 1.单播: 网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是"单播",此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用"点对点通信" (Point to Point) 代替"单播",因为"单播"一般与"多播"和"广播"相对应使用。 2.多播: “多播"也可以称为"组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。 IP网络的多播一般通过多播IP地址来实现。多播IP地址就是D类IP地址,即224.0.0.0至239.255.255.255之间的IP地址。Windows 2000中的DHCP管理器支持多播IP地址的自动分配。 3.广播: “广播"在网络中的应用较多,如客户机通过DHCP自动获得IP地址的过程就是通过广播来实现的。但是同单播和多播相比,广播几乎占用了子网内网络的所有带宽。拿开会打一个比方吧,在会场上只能有一个人发言,想象一下如果所有的人同时都用麦克风发言,那会场上就会乱成一锅粥。集线器由于其工作原理决定了不可能过滤广播风暴,一般的交换机也没有这一功能,不过现在有的网络交换机也有过滤广播风暴功能了,路由器本身就有隔离广播风暴的作用。 广播风暴不能完全杜绝,但是只能在同一子网内传播,就好像喇叭的声音只能在同一会场内传播一样,因此在由几百台甚至上千台电脑构成的大中型局域网中,一般进行子网划分,就像将一个大厅用墙壁隔离成许多小厅一样,以达到隔离广播风暴的目的。 在IP网络中,广播地址用IP地址"255.255.255.255"来表示,这个IP地址代表同一子网内所有的IP地址。 当前的网络中有三种通讯模式: 单播、广播、组播(多播),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。 一、单播: 主机之间"一对一"的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。 单播的优点: 服务器及时响应客户机的请求 服务器针对每个客户不通的请求发送不通的数据,容易实现个性化服务。 单播的缺点: 服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。 现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协议,将造成网络主干不堪重负。现在的P2P应用就已经使主干经常阻塞,只要有5%的客户在全速使用网络,其他人就不要玩了。而将主干扩展20倍几乎是不可能。 二、 广播: 主机之间"一对所有"的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息 (不管你是否需要) ,由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。 广播的优点: 网络设备简单,维护简单,布网成本低廉 由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。 广播的缺点: 1.无法针对每个客户的要求和时间及时提供个性化服务。 网络允许服务器提供数据的带宽有限,客户端的最大带宽=服务总带宽。例如有线电视的客户端的线路支持100个频道 (如果采用数字压缩技术,理论上可以提供500个频道) ,即使服务商有更大的财力配置更多的发送设备、改成光纤主干,也无法超过此极限。也就是说无法向众多客户提供更多样化、更加个性化的服务。 广播禁止在Internet宽带网上传输。 三、组播: 主机之间"一对一组"的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要 (加入组) 的主机,又能保证不影响其他不需要 (未加入组) 的主机的其他通讯。 组播的优点: 需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。 由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。IP协议允许有2亿6千多万个 (268435456) 组播,所以其提供的服务可以非常丰富。 此协议和单播协议一样允许在Internet宽带网上传输。 组播的缺点: 1.与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。 2.现行网络虽然都支持组播的传输,但在客户认证、QOS等方面还需要完善,这些缺点在理论上都有成熟的解决方案,只是需要逐步推广应用到现存网络当中。

2018-08-01 · 1 min · 64 words · -

linux Namespace

linux Namespace https://lwn.net/Articles/531114/ https://coolshell.cn/articles/17010.html Linux Namespace是Linux提供的一种内核级别环境隔离的方法。 chroot内部的文件系统无法访问外部的内容。Linux Namespace在此基础上,提供了对UTS、IPC、mount、PID、network、User等的隔离机制。 UTS Namespace IPC全称 Inter-Process Communication, 是 Unix/Linux下进程间通信的一种方式, IPC 有共享内存、信号量、消息队列等方法。

2018-07-31 · 1 min · 17 words · -

JWT, JSON Web Token

JWT, JSON Web Token 会话 会话跟踪技术是一种在客户端与服务器间保持 HTTP 状态的解决方案,我们所熟知的有 Cookie + Session、URL 重写、Token 等。 jwt JWT 的全称是 Json Web Token,是一种基于 JSON 的、用于在网络上声明某种主张的令牌 (token) 规范。 JWT 由三部分组成: head、payload、signature, 各部分通过 . 连接 xxxx . yyyy . zzzz HEAD 头部是一个 JSON 对象,包含了一些元数据, 存储描述数据类型 (JWT) 和签名算法 (HS256(HMAC-SHA256) 、RS256(RSA-SHA256) 还有 ES256(ECDSA-SHA256)) ,通过 Base64UrlEncode 编码后生成 head 。 { "typ" : "JWT", "alg" : "HS256" } type: 必需。token 类型,JWT表示是 JSON Web Token. alg: 必需。token 所使用的签名算法, 可用的值在这里有规定。 PAYLOAD 负载存放一些传输的有效声明,可以使用官方提供的声明, 也可以自定义声明。同样通过 Base64UrlEncode 编码后生成 payload。 声明可以分为三种类型: ...

2018-07-30 · 2 min · 392 words · -

SPA 单页应用程序

SPA 单页应用程序 单页Web应用 (single page web application,SPA) ,就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。单页Web应用 (single page web application,SPA) ,就是只有一张Web页面的应用。单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。 [1] 浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。因此,对单页应用来说模块化的开发和设计显得相当重要。

2018-07-30 · 1 min · 19 words · -

日期格式标准

日期格式标准 如时间为: 2020-01-12T15:17:21 国际标准化组织的国际标准ISO 8601是日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》 原文如下: 日期和时间的组合表示法编辑 合并表示时,要在时间前面加一大写字母T,如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:00或20040503T173008+08。 所以这个T date和time合并表示时,中间加个T。 iso 8806的百度地址是: https://baike.baidu.com/item/ISO%208601/3910715?fr=aladdin ———————————————— 版权声明:本文为CSDN博主「chushiyunen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/enthan809882/article/details/103946177 https://www.cnblogs.com/tzyy/p/5099207.html ISO日期格式标准,浏览器到服务器到MySQL中的时区 章节目录 时区简单理解 ISO_8601 日期格式标准 HTML5 input 标签datetime属性 MySQL时区 时区简单理解 https://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA 上面的链接是时区的wiki说明,下面说说我记住的部分: GMT时区是格林威治标准时间,我把它理解为 “真实时间” UTC时区是根据GMT得来的"世界标准时间",它的时间和GMT是相同的 CST可以指下列的时区: 澳洲中部时间,Central Standard Time (Australia) 中部标准时区 (北美洲) ,Central Standard Time (North America) 北京时间,China Standard Time 古巴标准时间,Cuba Standard Time,参见北美东部时区 其中我们所在的时区背景时间 CST=UTC+8小时,也就是说,真实时间是0点的时候,背景时间是8点 ISO_8601日期格式标准 https://zh.wikipedia.org/wiki/ISO_8601 上面是日期格式标准的wiki 当前的UTC时间是2016-01-07T01:58Z, 其中Z是4位数字格式的时间偏移量, 不写的时候默认不偏移。 其中,字母T代表使用UTC时间,字母Z代表时间偏移量,实际写法中字母Z应该被偏移量替换,例如 “2017-1-7T10:21+0800"或者"2017-1-7T10:21-0800”,字母Z被+0800和-0800替换了。 在浏览器中直接new一个date对象,因为我们处于UTC+0800的时区,所以控制台给我们打印出来的时间是GMT+0800的时间 2016-01-07T00:00 代表UTC时区1月7日0时0分 (在控制台中显示UTC+0800时区为8时0分) 2016-01-07T00:00 0800 代表UTC+0800时区1月7日0时0分,2016-01-07T00:00 -0800 代表UTC-0800时区1月7日0时0分,在控制台中显示分别如下 ...

2018-07-25 · 1 min · 212 words · -

docker mirror

docker mirror 登录容器Hub服务的控制台,左侧的加速器帮助页面就会显示为你独立分配的加速地址。 https://yq.aliyun.com/articles/29941 https://www.docker-cn.com/registry-mirror 永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。 vim /etc/docker/daemon.json #(create it if it does not exist) { "registry-mirrors": ["https://registry.docker-cn.com"], "insecure-registries": [ "registry.wiloon.com" ] } ### restart docker service # 修改保存后重启 Docker 以使配置生效。 sudo systemctl daemon-reload sudo systemctl restart docker.service ### 查看 sudo docker info daemon.json { "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] } http: server gave HTTP response to HTTPS client https://stackoverflow.com/questions/49674004/docker-repository-server-gave-http-response-to-https-client { "insecure-registries":["192.168.99.100:5000"] }

2018-07-15 · 1 min · 65 words · -

linux string cut, sort

linux string cut, sort https://www.cnblogs.com/farwish/p/4806018.html https://blog.csdn.net/xwhself/article/details/6118722

2018-07-13 · 1 min · 6 words · -

elk install

elk install download elasticsearch https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm install jdk8 yum localinstall elasticsearch-6.3.1.rpm start elasticsearch, it will generate default config file systemctl start elasticsearch edit config file /etc/elasticsearch/elasticsearch.yml path.data: /data/server/elasticsearch path.logs: /data/server/elasticsearch network.host: 0.0.0.0 mkdir -p /data/server/elasticsearch/ chown -R elasticsearch:elasticsearch elasticsearch/ systemctl restart elasticsearch install ingest geoip plugin download from https://artifacts.elastic.co/downloads/elasticsearch-plugins/ingest-geoip/ingest-geoip-6.3.1.zip download kibana yum localinstall kibana edit kibana config file, vi /etc/kibana/kibana.conf server.host: “xxx” elasticsearch.url: “http://elasticsearch-ip:9200” systemctl restart kibana check if kibana works http://kibana-ip:5601 download and install filebeat

2018-07-12 · 1 min · 75 words · -

填充模式,PKCS#5/PKCS7

‘填充模式,PKCS#5/PKCS7’ https://blog.csdn.net/test1280/article/details/75268255 填充模式: PKCS#5/PKCS7 首先我们要了解下啥是填充模式。 在分组加密算法中 (例如DES) ,我们首先要将原文进行分组,然后每个分组进行加密,然后组装密文。 其中有一步是分组。 如何分组? 假设我们现在的数据长度是24字节,BlockSize是8字节,那么很容易分成3组,一组8字节; 考虑过一个问题没,如果现有的待加密数据不是BlockSize的整数倍,那该如何分组? 例如,有一个17字节的数据,BlockSize是8字节,怎么分组? 我们可以对原文进行填充 (padding) ,将其填充到8字节的整数倍! 假设使用PKCS#5进行填充 (以下都是以PKCS#5为示例) ,BlockSize是8字节 (64bit) : 待加密数据原长度为1字节: 0x41 填充后: 0x410x070x070x070x070x070x070x07 待加密数据原长度为2字节: 0x410x41 填充后: 0x410x410x060x060x060x060x060x06 待加密数据原长度为3字节: 0x410x410x41 填充后: 0x410x410x410x050x050x050x050x05 待加密数据原长度为4字节: 0x410x410x410x41 填充后: 0x410x410x410x410x040x040x040x04 待加密数据原长度为5字节: 0x410x410x410x410x41 填充后: 0x410x410x410x410x410x030x030x03 待加密数据原长度为6字节: 0x410x410x410x410x410x41 填充后: 0x410x410x410x410x410x410x020x02 待加密数据原长度为7字节: 0x410x410x410x410x410x410x41 填充后: 0x410x410x410x410x410x410x410x01 待加密数据原长度为8字节: 0x410x410x410x410x410x410x410x41 填充后: 0x410x410x410x410x410x410x410x410x080x080x080x080x080x080x080x08 假设待加密数据长度为x,那么将会在后面padding的字节数目为8-(x%8),每个padding的字节值是8-(x%8)。 特别地,当待加密数据长度x恰好是8的整数倍,也是要在后面多增加8个字节,每个字节是0x08。 给出一个PKCS#5的实现: static size_t padding(unsigned char *src, size_t srcLen) { // PKCS#5 size_t paddNum = 8 - srcLen % 8; ...

2018-07-10 · 4 min · 738 words · -

systemctl start networking.service

systemctl start networking.service networking.service raises or downs the network interfaces configured in /etc/network/interfaces, that is, those network interfaces which are not managed by NetworkManager. If you look into /lib/systemd/system/networking.service you will see that all it does is ifup or ifdown depending on whether it is to be started or stopped. https://askubuntu.com/questions/850339/what-is-the-networking-service

2018-07-08 · 1 min · 51 words · -

raspberry pi router

raspberry pi router http://www.embeddedlinux.org.cn/emb-linux/entry-level/201703/18-6294.html sudo -i apt-get install dnsmasq hostapd vim /etc/dhcpcd.conf # 并在文件的最后一行添加以下内容 #Disable the dhcp client daemon config (denyinterfaces) #This is important because otherwise it will be requesting an address from itself and it will also end up having two IP addresses; not the end of the world but also not very tidy. So sudo nano /etc/#dhcpcd.conf and append the following line: denyinterfaces wlan0 systemctl stop networking.service systemctl disable networking.service vim /etc/systemd/network/eth0.network [Match] Name=eth0 [Network] DHCP=yes vim /etc/systemd/network/wifi.network [Match] Name=wlan0 [Network] Address=192.168.55.1/24 systemctl start systemd-networkd systemctl enable systemd-networkd /etc/hostapd/hostapd.conf vim /etc/hostapd/hostapd.conf ...

2018-07-05 · 2 min · 242 words · -

FQDN

FQDN https://blog.csdn.net/u012842205/article/details/51931017 FQDN 是完全合格域名/全程域名缩写, Fully Qualified Domain Name, 即是域名, 访问时将由 DNS 进行解析, 得到IP。 FQDN = Hostname + DomainName 当我们申请了一个域名时, 就可以使用这个域名来得到 IP,但若这个域名下挂在很多主机如何? 我是不是得申请很多很多域名给每个主机? 不需要, 域名即创建了一个域, 就如命名空间, 在这个命名空间下, 其他主机都可以创建自己的名称。这个名称就是通过以上公式得来。 举个例子, 一个公司申请了域名 comp.com, 这时候有一台主机名为 web, 则可以使用 web.comp.com 得到这个主机IP。 若还有两台提供邮件和 OA 服务的主机 cmail,oa,则这时候可以用以下 FQDN: cmail.comp.com oa.comp.com 类似例子也在安装 linux 系统时, 很多时候我们安装 Ubuntu, Debian 或 Kali 时, 会需要你填写一个域, 这个域即是你自己的, 只是没有注册,且只能在本地网络使用。 Linux 下查看方式: hostname, 查看主机名 hostname -f 查看 FQDN dnsdomainname 查看域 uname -h 查看主机名 注: 主机名作为一个网络节点的标示。

2018-07-03 · 1 min · 69 words · -

Mesos

Mesos Mesos 最初由 UC Berkeley 的 AMP 实验室于 2009 年发起,遵循 Apache 协议,目前已经成立了 Mesosphere 公司进行运营。Mesos 可以将整个数据中心的资源 (包括 CPU、内存、存储、网络等) 进行抽象和调度,使得多个应用同时运行在集群中分享资源,并无需关心资源的物理分布情况。 https://yeasy.gitbooks.io/docker_practice/mesos/intro.html

2018-06-30 · 1 min · 19 words · -

tlv

tlv 通信协议 (communications protocol) 是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。 本文描述了一种 Type-length-value 结构的数据编码格式,简称为TLV编码。对于TCP/IP模型来说,TLV属于应用层协议。TLV编码可以自我嵌套,即一个TLV的value部分可以包含一个或多个TLV,这样的结构使得TLV编码十分容易扩展。 http://www.wtango.com/tlv%E7%BC%96%E7%A0%81%E9%80%9A%E4%BF%A1%E5%8D%8F%E8%AE%AE%E8%AE%BE%E8%AE%A1/

2018-06-25 · 1 min · 9 words · -

yubikey, archlinux sudo, challenge-response

yubikey, challenge-response archlinux sudo install yubi pam set configuration sloat 2 as hmac-sha1 ykpamcfg -2 -v mkdir /data/yubikey mv ~/.yubico/challenge-123456’ /data/yubikey vim /etc/pam.d/sudo add line auth sufficient /usr/lib/security/pam_yubico.so mode=challenge-response debug chalresp_path=/data/yubikey auth sufficient /usr/lib/security/pam_yubico.so mode=challenge-response chalresp_path=/data/yubikey pacman -S yubico-pam pacman -S yubikey-manager

2018-06-24 · 1 min · 42 words · -

数字摘要, 数字签名

数字摘要, 数字签名 http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html http://ihenu.iteye.com/blog/2221604 数字摘要和数字签名等概念 数字摘要技术 数字摘要技术 (Digital Digest) 也称作为安全HASH编码法 (SHA: Secure Hash Algorithm) 。数字摘要技术用于对所要传输的数据进行运算生成信息摘要,它并不是一种加密机制,但却能产生信息的数字"指纹",它的目的是为了确保数据没有被修改或变化,保证信息的完整性不被破坏。 数字摘要技术有如下主要特点: ·它能处理任意大小的信息,并对其生成固定大小的数据摘要,数据摘要的内容不可预见 ·对于相同的数据信息进行HASH后,总是能得到同样的摘要;如果数据信息被修改,进行Hash后,其摘要必定与先前不同 ·HASH函数是不可逆的,无法通过生成的数据摘要恢复出源数据 数字签名 数字签名 (Digital Signature) 用来保证信息传输过程中完整性、提供信息发送者的身份认证和不可抵赖性。使用公开密钥算法是实现数字签名的主要技术。 使用公开密钥算法,当你用自己的私钥加密了一个信息,并将其发送给一个朋友时,如果你的朋友能够使用你的公钥来解密出信息,他就能确定信息必定是从你那里发来的,而不是一些冒名顶替的。这实际上就是数字签名的原理。 由于公开密钥算法的运算速度比较慢,因此可使用HASH函数对要签名的信息进行摘要处理,减小使用公开密钥算法的运算量。因此,数字签名一般是结合了数字摘要技术和公开密钥算法共同使用 实现数学签名的过程如下: 签名信息 1. 对信息M进行HASH函数处理,生成摘要H 2. 用你的 (发送者的) 私钥加密H来获取数字签名S 3. 发送 {M, S} 验证签名信息 1. 接受{M, S} 并区分开它们 2. 对接收到的信息 M进行HASH函数处理,生成摘要H* 3. 取得发送者的公钥 4. 用公钥解密S,来获取H 5. 比较H和H*,如果H和H*是一样的,即说明信息在发送过程中没有被篡改,反之即反 由于对信息进行数字签名后,明文信息也通过网络进行传递,因此,在做完数字签名后,还要对整个信息 (包括明文信息M和数字签名的密文信息S) 进行加密,以保证信息的保密性。 数字证书: 数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息和公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关 (证书授权中心) 的名称,该证书的序列号等信息,证书的格式遵循ITUT。 CA机构 证书授证 (Certificate Authority) 中心 出现CA机构的目的: 防止有的一些用户的公钥被非法替换,造成数据的泄露

2018-06-24 · 1 min · 66 words · -

SHA, Secure Hash Algorithm

SHA, Secure Hash Algorithm 安全散列算法 (英语: Secure Hash Algorithm,缩写为SHA) 安全散列算法SHA (Secure Hash Algorithm) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院 (NIST) 发布的一系列密码散列函数,包括 SHA-1、SHA-224、SHA-256、SHA-384 和 SHA-512 等变体。主要适用于数字签名标准 (DigitalSignature Standard DSS) 里面定义的数字签名算法 (Digital Signature Algorithm DSA) Hash 是什么,它的作用 先举个例子。我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志。也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人很多,身份证也可以伪造。最可靠的办法是把一个人的所有基因序列记录下来用来代表这个人,但显然,这样做并不实际。而指纹看上去是一种不错的选择,虽然一些专业组织仍然可以模拟某个人的指纹,但这种代价实在太高了。 而对于在互联网世界里传送的文件来说,如何标志一个文件的身份同样重要。比如说我们下载一个文件,文件的下载过程中会经过很多网络服务器、路由器的中转,如何保证这个文件就是我们所需要的呢?我们不可能去一一检测这个文件的每个字节,也不能简单地利用文件名、文件大小这些极容易伪装的信息,这时候,我们就需要一种指纹一样的标志来检查文件的可靠性,这种指纹就是我们现在所用的Hash算法(也叫散列算法)。 散列算法 (Hash Algorithm) ,又称哈希算法,杂凑算法,是一种从任意文件中创造小的数字「指纹」的方法。与指纹一样,散列算法就是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。因此,当原有文件发生改变时,其标志值也会发生改变,从而告诉文件使用者当前的文件已经不是你所需求的文件。 这种标志有何意义呢?之前文件下载过程就是一个很好的例子,事实上,现在大部分的网络部署和版本控制工具都在使用散列算法来保证文件可靠性。而另一方面,我们在进行文件系统同步、备份等工具时,使用散列算法来标志文件唯一性能帮助我们减少系统开销,这一点在很多云存储服务器中都有应用。 https://blog.csdn.net/asdzheng/article/details/70226007

2018-06-24 · 1 min · 40 words · -

U2F(Universal 2 Factor)

U2F(Universal 2 Factor) U2F(Universal 2 Factor)标准是由Yubico公司和Google发起的FIDO(Fast IDentity Online)联盟推出的标准, 旨在提供一个方便的免驱动、通用型的密码认证令牌, 期望能在让用户在有U2F认证的情况下, 即使用短密码, 也能实现高强度的认证. 而且这种认证是不依赖中心服务器的, 完全基于公私钥/PKI体系. U2F的物理层可以是USB-HID, 也可以是NFC(目前Yubikey Neo支持)http://scateu.me/2016/11/30/u2f-zero.html FIDO U2F规范,U2F (Universal 2nd Factor) 是 Yubico, Yahoo 和 Google 联合开发的基于物理设备的双因素认证协议,目前已经完成标准化,从属于 FIDO (Fast Identity Online) 联盟名下。

2018-06-24 · 1 min · 33 words · -

kibana 查询

kibana 查询 匹配查询 message: "15909840000" 模糊查询 message:1590984* Range Searches mod_date:[20020101 TO 20030101] 逻辑操作 AND OR 必须大写 AND OR 表示搜索结果中必须包含此项 表示不能含有此项 source:S0 AND message:M0 https://lucene.apache.org/core/2_9_4/queryparsersyntax.html https://www.jianshu.com/p/e6143951be9b

2018-06-22 · 1 min · 25 words · -

manually install python modules

manually install python modules https://stackoverflow.com/questions/32798137/importerror-no-module-named-appdirs download modules from pypi.python.org wget https://pypi.python.org/packages/48/69/d87c60746b393309ca30761f8e2b49473d43450b150cb08f3c6df5c11be5/appdirs-1.4.3.tar.gz gunzip appdirs-1.4.3.tar.gz tar -xvf appdirs-1.4.3.tar cd appdirs-1.4.3 sudo python setup.py install

2018-06-20 · 1 min · 22 words · -