Linux软链接和硬链接
Linux软链接和硬链接Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
关于硬链接在之前的node模块fs中的fs.link()有过介绍。
硬链接硬链接指通过索引节点来进行链接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种链接就是硬链接。硬链接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的链接。只删除一个链接并不影响索引节点本身和其它的链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬链接文件均被删除。
软链接另外一种链接称之为符号链接(Symbolic Link),也叫软链接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号链接中, ...
Web Speech API
Web Speech API前言前几天在看阮一峰老师的科技爱好者周刊173期时看到一篇关于语音识别的文章——Voice to Text with Chrome Web Speech API。网页、语音识别、语音合成感觉挺好玩的,了解了一下。
正文Web Speech API 有两个部分:SpeechSynthesis 语音合成 (文本到语音 TTS) 和 SpeechRecognition 语音识别 (异步语音识别)。
语音识别通过 SpeechRecognition 接口进行访问,它提供了识别从音频输入(通常是设备默认的语音识别服务)中识别语音情景的能力。一般来说,你将使用该接口的构造函数来构造一个新的 SpeechRecognition 对象,该对象包含了一系列有效的对象处理函数来检测识别设备麦克风中的语音输入。
SpeechRecognition兼容性
语音识别对象SpeechRecognition有许多属性、方法和事件处理程序。有关完整接口列表,请参阅https://w3c.github.io/speech-api/#speechreco-section
12345678910 ...
扩展欧几里德算法
扩展欧几里德算法欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a, b的最大公约数。基本算法:设$a=bq+r$,其中a, b, q, r都是整数,则:
\gcd(a,b)=\gcd(b,r)即$\gcd(a,b)=\gcd(b,a\%b)$。
证明引自离散数学课本:
先看一个整除定理与推论
接下来是证过程:
代码实现:
123456function gcd(a, b) { if (b===0) { return a; } return gcd(b, a%b);}
扩展欧几里德算法扩展欧几里德算法是欧几里德算法的扩展。
定理:若$a$和$b$为正整数,则存在整数$x,y$使得$\gcd(a,b)=ax+by$;
换句话说$\gcd(a,b)$可以表示为$a,b$的线性组合,例如:$\gcd(6,14)=2$,而 $2=(-2)*6+1*14$。
已知整数$a,b$,扩展欧几里德算法可以在求得$a,b$的最大公约数的同时,找到整数$x,y$(其中一个很可能是负数),使它们满足等式$ax+by=\gcd( ...
RSA加密原理(二)
RSA加密原理(二)本文转载与阮一峰老师的RSA算法原理(二)
正文开始!
上一次,我介绍了一些数论知识。
有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。
密钥生成的步骤我们通过一个例子,来理解RSA算法。假设爱丽丝要与鲍勃进行加密通信,她该怎么生成公钥和私钥呢?
第一步,随机选择两个不想等的质数p和q。
爱丽丝选择了61和53。(实际应用中,这两个质数越大,就越难破解。)
第二步,计算p和q的乘积n。
爱丽丝就把61和53相乘。
n=61*53=3233n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位。
第三步,计算n的欧拉函数$\phi(n)$
根据公式:
\phi(n)=\phi(pq)=\phi(p)*\phi(q)=(p-1)(q-1)爱丽丝算出$\phi(n)$等于$60*52$,即3120。
第四步,随机选择一个整数e,条件是$1<e<\phi(n)$,且e与$\phi(n)$互质。
爱丽丝就在1到31 ...
RSA算法原理之数论知识
RSA算法原理(一)之数论知识本文转载于阮一峰老师的RSA算法原理(一)
正文开始!
如果你问我,哪一种算法最重要?
我可能会回答“公钥加密算法”。
因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。
进入正题之前,我先简单介绍一下,什么是”公钥加密算法”。
一点历史1976年以前,所有的加密方法都是同一种模式:
甲方选择某一种加密规则,对信息进行加密;
乙方使用同一种规则,对信息进行解密。
由于加密和解密使用同样规则(简称”密钥”),这被称为“对称加密算法”(Symmetric-key algorithm)。
这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。
1976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为“Diffie-Hellman密钥交换算法”。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即 ...
单向加密&双向加密
单向加密、双向加密前言在之前的文章Web页面子资源完整性校验详细指南有涉及到将文件进行sha384加密后base64编码来检验文件是否被篡改。对其中用到的工具openssl比较感兴趣,所以顺带了解了加密算法,算是加密算法的一些常识。
以下为正文。
加密算法一般可分为两种,即单向加密算法和双向加密算法。
双向加密是加密算法中最常用的,它将可以直接理解的明文数据加密为不可直接理解的密文数据,在需要的时候,又可以使用一定的算法将这些加密以后的密文数据解密为原来的明文数据。双向加密适合于隐秘通讯,比如,比如在网络上注册用户或者购买商品时,提交的真实姓名、身份证号码、银行账号、信用卡密码等信息,应当通过双向加密算法加密以后,再在网络上传输,这样,可以有效的防止黑客的“偷听”,保证数据的安全,同时,网站接收到我们的数据以后,可以通过解密算法来获得准确的信息。
双向加密既可以加密,又可以解密。而单向加密则刚好相反,它只能对明文数据进行加密,而不能对加密了的密文数据再解密成原来的明文数据。可能读者会认为,不能解密的加密算法有什么作用呢?在实际应用中,对软件系统数据库中的系统用户信息(如用户密码)加密, ...
Node.js中的console.log()输出彩色字体
Node.js中的console.log()输出彩色字体前言最近在写脚本的时候发现在控制台输出的信息不够显眼,比较单调。但是又没必要为了这一个小需求再引入一个第三方库(chalk),于是就想着研究一下控制台输出彩色字体的原理是什么。
请注意,此篇文章中的颜色仅适用于仿真器(putty、secureCRT、XShell),以及unix终端,不适用于CMD(但依然可用于WIN下的仿真器)
简介
在终端或仿真器中输入下面的代码,并回车,预览最直接的效果。
1echo -e "\033[1;31mI ♡ You \e[0m"
请注意,引号内的\e等同于\033;\033、\x1b和\e效果是一样,对应键盘左上角Esc键对应的ASCII码(8进制);
在nodeJS环境下只有\033和\x1b生效。
12console.log('\x1b[1;31;46mI ♡ You \033[0m');console.log('\033[31;43mI ♡ You \x1b[0m');
控制台输出为:
通用的控制文本颜色的转义序列 ...
SQL入门学习
SQL入门学习前言国庆节在家学习了一下SQL语言,主要是通过阮一峰老师在周刊推荐的网站SQLBolt。一共18节小课,每一节都有对应的练习题,相对来说比较简单,适合入门。
SQL Lesson 1: SELECT queries1234567# Select query for a specific columnsSELECT <column>, <another_column>, …FROM <mytable>;# Select query for all columnsSELECT * FROM <mytable>;
ExerciseTable: Movies
Id
Title
Director
Year
Length_minutes
1
Toy Story
John Lasseter
1995
81
2
A Bug’s Life
John Lasseter
1998
95
3
Toy Story 2
John Lasseter
1999
93
4
Monsters, Inc.
Pete Docter
20 ...
Web页面子资源完整性校验详细指南
Web页面子资源完整性校验详细指南前言本文转载于Web页面子资源完整性校验详细指南,对作者表示感谢。
文章内容有部分修改,但整体效果相同。
这次要跟大家分享的是关于Subresource Integrity(子资源完整性)的内容。如果平时对Web安全关注不是很多的话,可能没怎么听过这个术语。不知道也没关系,接下来我会跟大家一起来研究讨论一下这个内容,相信在看完这篇文章之后,你能够深入的理解什么是SRI,为什么要使用SRI,以及在有这方面需求的情况下如何在项目中实践使用SRI。
SRI是什么,以及解决了什么问题SRI是Subresource Integrity的简写,表示的是子资源的完整性。比如对于我们在页面中通过link和script标签引入的样式文件或者引入使用的第三方库就是页面的的子资源。比如像下面这样:
123456<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" ...
转载-节选-科技爱好者周刊节选(176&177期)
科技爱好者周刊(第 176&177 期)前言最近事情(当然是喜事了~~)比较多,阮老师的周刊有两期没看,今天一起来补看一下
《176周刊》链接:科技爱好者周刊176期
《177周刊》链接:科技爱好者周刊177期
176期:中国法院承认GPL吗?科技动态 部分
游戏厅的衰落
日本的电子游戏厅曾经盛极一时,各种街机玲琅满目,但是,现在已经盛况不再。根据警方的统计,1986年日本全国曾经有 26,573 家游戏厅,到了2019年只剩下 4,022 家,疫情爆发以后,数目更是继续锐减,可能不到最高峰时的十分之一。
互联网和手机游戏的兴起,是游戏厅衰落的主要原因。目前,游戏厅的最大顾客来源是传统游戏爱好者,以及老年人。一位65岁的老人说,他把游乐厅当作社交场所,可以结交很多朋友。
漂浮式光伏电站
山东德州最近建成了,世界最大的单体水上漂浮式光伏电站。在水库的水面上,漂浮着面积2200亩的太阳能光伏板,设计总容量为320兆瓦,第一期建成了200兆瓦。
漂浮式光伏电站的好处是,对水体没有破坏性,比较环保,节省地基成本,施工周期短,还可以减少水库的水量蒸发、遮挡阳光抑制藻类生长。另 ...