公钥加密

js随笔

血红的双手。 提交于 2019-11-27 04:49:12
参考链接: https://juejin.im/post/5d23e750f265da1b855c7bbe https://github.com/ly2011/blog/issues/153 7 ES5/ES6 的继承除了写法以外还有什么区别 class Super {} class Sub extends Super {} const sub = new Sub(); Sub.__proto__ === Super; 子类可以直接通过 proto 寻址到父类。 function Super() {} function Sub() {} Sub.prototype = new Super(); Sub.prototype.constructor = Sub; var sub = new Sub(); Sub.__proto__ === Function.prototype; 而通过 ES5 的方式,Sub.__proto__ === Function.prototype 相关问题 : js的继承问题 // 寄生组合式继承 // 通过借用构造函数来继承属性, 通过原型链来继承方法 // 不必为了指定子类型的原型而调用父类型的构造函数,我们只需要父类型的一个副本而已 // 本质上就是使用寄生式继承来继承超类型的原型, 然后再讲结果指定给子类型的原型 function object(o)

【所谓的公钥私钥】_

江枫思渺然 提交于 2019-11-27 02:52:37
原文: http://106.13.73.98/__/77/ 1.鲍勃有两把钥匙,一把是公钥,另一把是私钥 2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7.鲍勃将这个签名,附在信件下面,一起发给苏珊。 8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找

【所谓的公钥私钥】 -- 2019-08-12 12:41:51

此生再无相见时 提交于 2019-11-27 02:46:41
原文: http://106.13.73.98/__/77/ 1.鲍勃有两把钥匙,一把是公钥,另一把是私钥 2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7.鲍勃将这个签名,附在信件下面,一起发给苏珊。 8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找

从输入URL到页面加载发生了什么?

醉酒当歌 提交于 2019-11-27 01:55:32
  恩,如你所见,这是一道程序员经典面试题,涵盖了各个领域的知识,这个问题可以答的很简单,也可以答的很复杂。   首先,我们会在浏览器中输入类似 http(s)://xxx.xxx.com 这样的域名。   我们看到这个域名由 http 或 https 协议组成。   那么既然我们说到了协议,不得不先来了解一下计算机网络的知识了。      一台电脑要和另一台电脑通信,本质上就是通过电信号的高低频,在计算机中也就是0和1来传输,那么最底层一定是物理层,我们用的光纤,网线都是物理层的媒介和连接器,物理层也有很多协议和标准,这里就不展开了。往上一层包装的就是数据链路层,我们平时所说的ARP地址解析协议就在这一层,它是根据ip地址解析到电脑mac地址(硬件物理地址)的协议。再往上包装的就是网络层,著名的ip协议就在这一层,是用来寻址的重要协议。然后是传输层,寻址到了我们需要搭建一个传输的桥梁,著名的TCP三次握手就在这一层。通道已经建好了,那么把数据包用HTTP协议的格式封装好,准备传输,这一层就是应用层,还包括了常见的DNS域名解析系统,SMTP简单邮件传输协议等。   这样经过一层一层的包装和拆包,计算机和计算机之间才可以建立联系,互相发送彼此能看懂的数据包。   所以,在浏览器中输入URL后,第一步是通过应用层的DNS解析这个域名对应的真实ip地址

【所谓的公钥私钥】 -- 2019-08-11 19:42:38

旧巷老猫 提交于 2019-11-27 00:16:58
原文: http://106.13.73.98/__/77/ 1.鲍勃有两把钥匙,一把是公钥,另一把是私钥 2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7.鲍勃将这个签名,附在信件下面,一起发给苏珊。 8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找

SSH

你离开我真会死。 提交于 2019-11-26 23:06:19
SSH 背景 解决的问题:明文登录信息暴露问题。 历史: 1995 年,芬兰赫尔辛基理工大学的 Tatu Ylonen 发现自己学校存在嗅探密码的网络攻击,于是开发了 SSH ( Secure Shell )通信安全协议,用于加密登录,并随后以免费软件形式发布,并创办 SSH 通信安全公司来继续开发和销售SSH。 截至2005年, OpenSSH 是唯一一种最流行的SSH实现,而且成为了大量操作系统的默认组件。 SSH 原理 核心: 非对称加密 。 整个过程是这样的: 远程主机收到用户的登录请求,把自己的公钥发给用户。 用户使用这个公钥,将登录密码加密后,发送回来。 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。 口令登录 用户使用 ssh user@host 登录远程主机时,系统会提示远程主机的公钥指纹,当用户确认接收该公钥指纹时,会保存到 $HOME/.ssh/known_hosts 中,下次登录时会跳过。 公钥指纹:公钥长度较长(这里采用RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d ,再进行比较。 公钥登录 所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候

RSA的加密和签名

丶灬走出姿态 提交于 2019-11-26 17:15:37
RSA加密(防泄漏) 1:A(如:客户端)在本地生成私钥和公钥 2:A将公钥发给B(如:服务器) 3:B使用公钥加密后,将密文返回给A 4:A使用本地的私钥解密 防泄漏的原理: 由于私钥存在 本地 , 传输内容 是公钥和密文,即使中途被黑客 截获 ,也无法解密。 RSA签名(防篡改) 1:A生成私钥和公钥,公钥公开,私钥签名(加密) 2:A将 明文、签名 发给B 2:B使用公开的公钥验签(解密),验签结果和明文一致,则证明内容没被黑客篡改过。 防篡改的原理: 由于公钥是 公开的 , 并且只能用来开对应私钥的锁,因此,即使黑客 篡改了明文 却 没有私钥 对明文进行 重新签名 ,所以B通过验签比对即可发现明文已经被篡改。 为什么要公开: 如果公钥不是公开的,而是和明文、签名一起发出,那么黑客即可通过自己的私钥进行篡改公钥、明文以及签名。 同时防泄漏和防篡改 结合二者,A和B分别生成密钥对(公钥a1,私钥a2)和密钥对(公钥b1,私钥b2),A发出公钥a1给B解密或验签,B同样发出公钥b1给A解密或验签,即可保证更大限度的安全。简单来说,这便是一个 交换公钥的过程 。 来源: https://blog.csdn.net/u010921136/article/details/98964885

【所谓的公钥私钥】 -- 2019-08-09 11:14:19

萝らか妹 提交于 2019-11-26 16:12:36
原文: http://106.13.73.98/__/77/ 1.鲍勃有两把钥匙,一把是公钥,另一把是私钥 2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7.鲍勃将这个签名,附在信件下面,一起发给苏珊。 8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找

SSH远程管理服务实战

痴心易碎 提交于 2019-11-26 14:53:26
目录 SSH远程管理服务实战 1.SSH基本概述 2.SSH相关命令 3.Xshell连接不上虚拟机 4.scp命令 5.sftp命令 6.SSH验证方式 7.SSH场景实践 8.SH安全优化 9.交互expect[扩展] 10.免交互sshpass[扩展] SSH远程管理服务实战 1.SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全。那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务2.对传输的数据进行加密 那么除了SSH协议能提供远程连接服务,Telnet也能提供远程连接服务, 那么分别的区别是什么呢?ssh服务会对传输数据进行加密, 监听在本地22/tcp端口, ssh服务默认支持root用户登录telnet服务不对数据进行加密, 监听在本地23/tcp端口, Telnet默认不支持root用户登录 Linux远程链接:ssh协议(加密) telnet(明文) windows远程连接:RDP协议 (remote desktop) 协议 端口 ssh 22 telnet 23 RDP 3389 http 80 https 443 FTP 20 21 POP3 110 MySQL 3306 Rsync 873 DNS 53 案例: 使用wireshark验证telnet明文传输与ssh加密传输 1

什么是openssl

不羁岁月 提交于 2019-11-26 13:58:37
openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔。要想了解openssl,有几个前置的概念需要先熟悉一下: SSL SSL的全名叫做secure socket layer(安全套接字层),最开始是由一家叫网景的互联网公司开发出来,主要是防止信息在互联网上传输的时候不被窃听或者篡改,后来网景公司提交SSL给ISOC组织做标准化,改名为TLS。 有些同学可能会好奇,说好好的数据怎么就被窃听以及修改呢?这个其实是很容易的,如果你上网连得的是wifi,那么你的数据一定会经过wifi路由器,通过对路由器做些手脚就可以拿到这些数据。 非对称加密 在数学上有这样一个现象:给两个质数,很容易算出他们的乘积,但是给你一个很大的数,你很难分解出两个质数,让他们的乘积正好等于这个很大的数。 非对称加密就是基于以上的现象产生的,用一个密钥对数据进行加密,然后可以使用另外一个不同的密钥对数据进行解密,这两个密钥就是:公钥和私钥。 公钥和私钥是可以相互推导的,根据私钥,你可以很容易的算出公钥,但是根据公钥,你却很难很难算出私钥,在互联网上,私钥一般由服务器掌握,公钥则由客户端使用。根据公钥,理论上需要花费地球上所有的计算机计算数万年才能算出私钥,所以认为是非常安全的。 数字签名 将报文使用一定的HASH算法算出一个固定位数的摘要信息,然后用私钥将摘要加密,连同原来的报文一起