SSH远程登录
SSH远程登录什么是SSH?SSH(Secure Shell Protocol)是一个是一种加密的网络传输协议,是一个Protocol,它有具体实现,比如开源的openSSH。SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接,可在不安全的网络中为网络服务提供安全的传输环境,SSH最常见的用途是远程登录系统。
连接的整个过程
建立连接 SSH是基于TCP/IP协议的,所以最开始的时候要先进行TCP3次握手
版本协商 SSH目前有SSH-1和SSH-2两个版本,加密方式不同,需要预先协商使用的版本
算法协商 协商使用哪种加密算法,如 RSA,ED25519
密钥交换 使用DH密钥交换算法(Diffie–Hellman key exchange)生成共享密钥。过程如下首先客户端生成公钥pk1,私钥sk1,然后将pk1发送给服务端服务端生成服务端自己的公钥pk2,私钥sk2,然后服务端使用pk2,sk2,pk1生成了共享密钥ss1接着服务端不会直接发送ss1给客户端,而是发送pk2给客户端,也就是也将自己的公钥发送给对方客户端收到pk2后,使用pk1,sk1,pk ...
sr-only
使用sr-only样式的目的是将内容从视觉上隐藏,但是仍然让 Screen Reader 可读。这对视觉障碍者提供了额外的信息,增强了Accessibility,同时对SEO友好。
1234567891011.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
一些算法中常用的coding技巧
写一些学算法时收获的 coding 小技巧不等于 -1在记忆化搜索中通常会有一个 memo 数组,最初的时候 memo 会全被初始化为-1,代码中有时会这么写
1234567891011void dfs(int i){ if(i>n){ cal(); return; } if(memo[i][j]!=-1){ cal(); return; } dfs(i+1);}
那么这个记忆化判断部分if(memo[i][j]!=-1),完全可以写成if(~memo[i][j]).
其中的原理:-1的二进制为 1000 0001 ,其在计算机中存储为补码形式,即 1111 1111 ,~运算取反,-1会运算成0,其他数则会运算为非0,那么if(~memo[i][j])就是表示除了-1均通过
向下取整(仅限JavaScript)js是弱类型语言,在进行一些运算时会进行隐式类型转换,那么来这么一个式子:x=~~x;就可以实现向下取整, ...
你好,世界
每回合增加一张牌到你的手牌
h1h2h3h4h5h61234567// c#include<stdio.h>int main(){ printf("Hello World\n"); return 0;}
1234567// cpp#include<iostream>int main(){ std::cout<<"Hello World"<<endl; return 0;}
123456// javapublic class Main { public static void main(String[] args) { System.out.println("Hello World"); }}
12# pyprint("Hello World")
12// jsconsole.log("Hello World&quo ...