当打开Node或者任何一个开源平台下载代码时候,我们都会很在意该网站是不是属于官方认证…
Hash 哈希的理解与运用 当打开Node或者任何一个开源平台下载代码时候,我们都会很在意该网站是不是属于官方认证. 但是即使是官网下载的文件,在传输过程中被劫持.那么我们如何保证自己下载的app或者说源代码又或是zip是属于没有被篡改的呢? 这个时候你会看到 会有一个校验的码.
首先,要想验证文件的完整性和安全性,是基于对该文件的一些数据做算法的摘要的比对. 我们来做一个小测试
$ shasum xray.jpg 501575ac28e10b1632e4ca5d7d69737ce5c532c1 xray.jpg 调出终端 通过Mac osx 自带的命令 shasum, 你可以对一个文件做一个sha算法摘要
什么是hash fuction 哈希函数是一种将可变长度的输入映射到固定长度的输出的算法。该函数的返回值称为哈希值,摘要或哈希。 它主要用于解决密码学的完整性原理。该消息可以在发送方和接收方之间的通信期间进行更改
哈希函数的主要特征是:
定长输出:散列函数接收任何大小的消息(输入),并始终产生相同的输出大小。 效率:一定不会很难执行。 确定性:同一条消息将始终产生相同的哈希值。 要在密码学中使用,它必须具有以下属性:
图像前抗性:给定哈希值,很难找到源于该哈希值的消息。 第二种图像前抗性:给定一条消息m,要找到另一个产生与m相同哈希值的消息n会非常困难。 防冲突性:很难找到产生相同哈希值的两条不同消息。 哈希值的利用举例
文档完整性 密码存储 因为在高级的程序设计中我们可以根据哈希值得唯一性以及可逆推断差的特性来将明文密码转变为加密的密码 唯一的ID 例如 UUID/IDFA/AndroidID 这类代表用户信息唯一的,或比如我们每一次做的 git提交的时候 提交的内容 采用go语言做的 hash 实践
package main import ( "crypto/md5" "crypto/sha1" "crypto/sha256" "fmt" ) func main() { s := "Foo" hmd5 := md5.Sum([]byte(s)) hsha1 := sha1.Sum([]byte(s)) hsha2 := sha256.Sum256([]byte(s)) fmt.
All Posts
-
Read Article
-
Read Article馬克一號(Mark I)是美國第一部大尺度自動數位電腦 Harvard mark I 馬克一號(Mark I)是美國第一部大尺度自動數位電腦,被認為是第一部萬用型計算機。它的生产和设计者给它起的名字是全自動化循序控制計算機(Automatic Sequence Controlled Calculator,缩写为ASCC),马克一号是它的用户哈佛大學给它起的名字。這部機電式ASCC是由IBM的霍華德·艾肯所設計的,在1944年8月7日搬到哈佛大學。馬克一號的特點為全自動運算。一旦開始運算便無須人為介入。馬克一號是第一部被實作出來的全自動電腦,同時與當年的其他電子式電腦相比它非常可靠。大家認為「這是現代電腦時代的開端」以及「真正的電腦時代的曙光」。 继电器 继电器(Relay),也称电驿,是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关 ”。故在电路中起着自动调节、安全保护、转换电路等作用。 机械式继电器通过控制线路通电 导致线圈产生磁场可以将金属臂下拉闭合 从而可以控制了电路的导通,由于继电器的电臂有质量,并且金属会随着时间的磨损导致,继电器会损坏.在mark2号里面 发热的机箱会吸引了虫子 导致电路无法正常运作. 记录员就将bug(虫子/飞蛾)称之为故障 Diode 二极管 一个热离子二极管就是一个真空管(也称“电子管”),由一个包含着两个电极的密封真空玻璃壳组成:由灯丝加热的阴极,和一个阳极。早期产品的外观和现在的白炽灯泡相当类似。在操作中,一个单独的电流通过由镍铬合金制成的高电阻灯丝(加热器),将阴极加热到红热状态(800-1000℃)后可导致它释放电子到真空。这一过程即热发射。阴极通常涂有碱土金属氧化物,如钡或锶的氧化物。因为它们具有较低的功函数,可使发射的电子数量增加。有些真空管则直接加热钨丝,钨丝则既作为加热器也是阴极本身。交流电会在负极及与其同心的阳极板之间整流,当板子带正电时,静电会从负极处吸引电子。所以电子即从阴极连通到阳极成为了电流。然而当极性反转阳极板带有负电时,阳极板不会发射电子,而阴极也并不会吸引电子,因而没有电流会产生。如此则保证了电流的单向流通,即从阴极流向阳极板。在汞弧阀(具有冷阴极的汞蒸气离子阀)中,一种难熔的导电阳极与一池作为阴极的液态汞之间会形成电弧,电压单位可达数百千瓦,这对高压直流输电的发展起到了促进作用。一些小型的热离子整流器有时候也用汞蒸气填充,以减少他们的正向压降并增加这种热离子强真空器件的电流额定值。整个真空管时代,这种二极管应用于模拟信号,并在消费电子产品(如收音机、电视机、音响系统)的直流供电设备中当做整流器。20世纪40年代,在那些供电设备内的真空管开始被硒整流器所替代,然后在1960年代又被半导体二极管替代。如今,二极管仍然在一些高功率应用场合中使用,由于能够承受瞬变和较好的鲁棒性,使得他们比半导体器件的优势能够显现出来。尤其是音频处理上,真空管基本不存在瞬态互调失真、开关失真及交越失真等影响音质的问题。因此近年来,在音响发烧友和录音棚所用的音频设备中,应用真空二极管的老式音频设备有回潮的迹象,如家用音响系统甚至是吉他效果器。 通过真空,加热金属释放出电子使得电路导通,单向流通特性. Triode vacuum tubes 三级真空管 三极管(英语:Triode)是一个有放大器功能的真空管,在真空的玻璃外壳内有三个电极:包括一个加热的灯丝(或称阴极)、控制栅格(英语:control grid)及金属平板(阳极) 。三极管是由李·德富雷斯特在1906年发明,是第一个电子放大器。也是其他类型真空管如四极管、五极管的祖先。它的发明开创了电子时代,使无线电放大和长途电话成为可能。李·德富雷斯特因为发明三极管,被誉为是电子学之父。现在的三极管只有一厘米左右的长度 通过控制正电压能导通,负电压会阻挡 从而让电路拥有了开关特性,这将是对上文提到的,继电器一个巨大的变革.因为其内部是真空的,没有移动所以使用时间很长,并且在同一时间内 可以做更多次的开合. 晶体管 电晶体由半导体材料组成,至少有三个对外端点(称为极),(C)集极、(E)射极、(B)基极,其中(B)基极是控制极,另外两个端点之间的伏安特性关系是受到控制极的非线性电阻关系。晶体管基于输入的电流或电压,改变输出端的阻抗,从而控制通过输出端的电流,因此晶体管可以作为电流开关,而因为晶体管输出信号的功率可以大于输入信号的功率,因此晶体管可以作为电子放大器。 伟大的发明 IEEE 里程碑式创造. 稳定便宜可靠快速开关,放大,稳流. 为什么是二进制 二进制 0 或者 1 代表真实世界中的开关真假. 计算机之所采用二进制的原因 一个是上面提到的晶体管会有两种形式的存在,并且当时的数学科上有一个专门处理yes/no的学科,叫做布尔代数. 与或非 非:取反, 单个输入 单个输出 通过Not门把电子控制,就可以将真值表用电路来表示了 与: 两个晶体管来控制 或: 两个晶体管来控制 xor 异或 逻辑异或 在数字逻辑中,逻辑算符互斥或闸(exclusive or)是对两个运算元的一种逻辑分析类型。与一般的逻辑或不同,当两两数值相同为否,而数值不同时为真。 二进制(知识点) 基础的二进制 8位 称之为一个byte是ibm创建的词汇 2的8次方 256最大值 American Standard Code for Information Interchange 简称ASCII:8位