很多朋友在找metamask时都会咨询sha384和sha384加密,这说明有一部分人对这个问题不太了解,您了解吗?那么什么是sha384加密?下面就由小编带大家详细了解一下吧!
1、CRC8、CRC16、CRC32
CRC(Cyclic Redundancy Check,循环冗余校验)算法出现时间较长,应用也十分广泛,尤其是通讯领域,现在应用最多的就是 CRC32 算法,它产生一个4字节(32位)的校验值,一般是以8位十六进制数,如FA 12 CD 45等。CRC算法的优点在于简便、速度快,严格的来说,CRC更应该被称为数据校验算法,但其功能与数据摘要算法类似,因此也作为测试的可选算法。
在 WinRAR、WinZIP 等软件中,也是以 CRC32 作为文件校验算法的。一般常见的简单文件校验(Simple File Verify – SFV)也是以 CRC32算法为基础,它通过生成一个后缀名为 .SFV 的文本文件,这样可以任何时候可以将文件内容 CRC32运算的结果与 .SFV 文件中的值对比来确定此文件的完整性。
与 SFV 相关工具软件有很多,如MagicSFV、MooSFV等。
2、MD2 、MD4、MD5
这是应用非常广泛的一个算法家族,尤其是 MD5(Message-Digest Algorithm 5,消息摘要算法版本5),它由MD2、MD3、MD4发展而来,由Ron Rivest(RSA公司)在1992年提出,被广泛应用于数据完整性校验、数据(消息)摘要、数据加密等。MD2、MD4、MD5 都产生16字节(128位)的校验值,一般用32位十六进制数表示。MD2的算法较慢但相对安全,MD4速度很快,但安全性下降,MD5比MD4更安全、速度更快。
在互联网上进行大文件传输时,都要得用MD5算法产生一个与文件匹配的、存储MD5值的文本文件(后缀名为 .md5或.md5sum),这样接收者在接收到文件后,就可以利用与 SFV 类似的方法来检查文件完整性,绝大多数大型软件公司或开源组织都是以这种方式来校验数据完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。
与MD5 相关的工具有很多,如 WinMD5等。
3、SHA1、SHA256、SHA384、SHA512
SHA(Secure Hash Algorithm)是由美国专门制定密码算法的标准机构—— 美国国家标准技术研究院(NIST)制定的,SHA系列算法的摘要长度分别为:SHA为20字节(160位)、SHA256为32字节(256位)、 SHA384为48字节(384位)、SHA512为64字节(512位),由于它产生的数据摘要的长度更长,因此更难以发生碰撞,因此也更为安全,它是未来数据摘要算法的发展方向。由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。
SHA1的应用较为广泛,主要应用于CA和数字证书中,另外在互联网中流行的BT软件中,也是使用SHA1来进行文件校验的。
4、RIPEMD、PANAMA、TIGER、ADLER32 等
RIPEMD是Hans Dobbertin等3人在对MD4,MD5缺陷分析基础上,于1996年提出来的,有4个标准128、160、256和320,其对应输出长度分别为16字节、20字节、32字节和40字节。
TIGER由Ross在1995年提出。Tiger号称是最快的Hash算法,专门为64位机器做了优化。
哈希函数(Hash Function),也称为散列函数,给定一个输入 x ,它会算出相应的输出 H(x) 。哈希函数的主要特征是:
另外哈希函数一般还要求以下两种特点:
1、免碰撞 :即不会出现输入 x≠y ,但是H(x)=H(y) 的情况,其实这个特点在理论上并不成立,比如目前比特币使用的 SHA256 算法,会有 2^256 种输出,如果我们进行 2^256 1 次输入,那么必然会产生一次碰撞,事实上,通过 理论证明 ,通过 2^130 次输入就会有99%的可能性发生一次碰撞,不过即使如此,即便是人类制造的所有计算机自宇宙诞生开始一直运算到今天,发生一次碰撞的几率也是极其微小的。
2、隐匿性 :也就是说,对于一个给定的输出结果 H(x) ,想要逆推出输入 x ,在计算上是不可能的。如果想要得到 H(x) 的可能的原输入,不存在比穷举更好的方法。
hash 算法的原理是试图将一个空间的数据集映射到另外一个空间(通常比原空间要小),并利用质数将数据集能够均匀的映射。目前主流的 hash 算法有: md4 、 md5 、 sha系列 。
MD4是麻省理工学院教授 Ronald Rivest 于1990年设计出来的算法。其摘要长度为128位,一般用32位的十六进制来表示。
2004年8月清华大学教授王小云,指出在计算MD4时可能发生杂凑冲撞。不久之后,Dobbertin 等人发现了MD4在计算过程中第一步和第三步中的漏洞,并向大家演示了如何利用一部普通电脑在几分钟内找到MD4中的冲突,毫无疑问,MD4就此被淘汰掉了。
1991年,Rivest 开发出技术上更为趋近成熟的MD5算法,它在MD4的基础上增加了”安全-带子”(safety-belts)的概念。虽然 MD5 比 MD4 复杂度大一些,但却更为安全。这个算法很明显的由四个和 MD4 设计有少许不同的步骤组成。
MD5 拥有很好的抗修改性,即对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
MD5很好的用在了大文件的断点续传上:如果有一个 5MB 的文件 客户端把它分割成5片 1MB 的文件 在上传的时候上传两个 MD5 值,一个是当前上传的文件片的 MD5 还有一个就是拼接之后的 MD5 (如果现在上传的是第二片 这个MD5就应该是第一片加上第二片的MD5), 通过这样的方式能保证文件的完整性。
当如果文件传到一半断了,服务器可以通过验证文件 MD5 值就可以得知用户已经传到了第几片,并且知道之前上传的文件有没有发生变化,就可以判断出用户需要从第几片开始传递。
不过在2004年8月的国际密码学会议(Crypto’2004),王小云提出了一种快速找到 MD5 碰撞的方法(参见其 论文 ),降低了 MD5 的安全性,人们开始寻求更加可靠的加密算法。
SHA的全称是Secure Hash Algorithm(安全hash算法),SHA系列有五个算法,分别是 SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布,是美国的政府标准。后四者有时并称为 SHA-2。SHA-1在许多安全协定中广为使用,包括 TLS/SSL 等,是 MD5 的后继者。
最初该算法于1993年发布,称做安全散列标准 (Secure Hash Standard),最初这个版本被称为”SHA-0″,它在发布之后很快就被NSA撤回,因为有很大的安全缺陷,之后在1995年发布了修订版本,也就是SHA-1。
SHA-0 和 SHA-1 会从一个最大 2^64 位元的讯息中产生一串 160 位元的摘要,然后以 MD4 及 MD5 算法类似的原理来加密。
2017年,谷歌发布了最新的研究成功,宣布攻破了SHA-1,并详细描述了成功的SHA1碰撞攻击方式,使用这种方式,可以在亚马逊的云计算平台上,耗时10天左右创建出SHA-1碰撞,并且成本可以控制在11万美元以内。
即使如此,对于单台机器来说攻击的成本依然很高,发生一次SHA-1碰撞需要超过 9,223,372,036,854,775,808 个SHA1计算,这需要使用你的机器进行6500年计算。
SHA2包括了SHA-224、SHA-256、SHA-384,和SHA-512,这几个函数都将讯息对应到更长的讯息摘要,以它们的摘要长度(以位元计算)加在原名后面来命名,也就是说SHA-256会产生256位长度摘要。
SHA-2相对来说是安全的,至今尚未出现对SHA-2有效的攻击!
由于目前大量的网站使用的SSL数字证数都是使用SHA-1签名的,而SHA-1又已经不安全,各大浏览器厂商均宣布了弃用SHA-1的时间表:
可以看出,在时间表之后,如果检测到网站的证书使用的还是SHA-1,就会弹出警告:
为了防止网站因出现上面的警告而显得不专业,我们需要尽快的申请使用跟安全放心的基于SHA-2签名的证书。
MD5即Message-Digest Algorithm 5(信息摘要算法5),是计算机广泛使用的散列算法之一。经MD2、MD3和MD4发展而来,诞生于20世纪90年代初。用于确保信息传输完整一致。虽然已被破解,但仍然具有较好的安全性,加之可以免费使用,所以仍广泛运用于数字签名、文件完整性验证以及口令加密等领域。
算法原理:
散列算法得到的结果位数是有限的,比如MD5算法计算出的结果字长为128位,意味着只要我们穷举2^128次,就肯定能得到一组碰撞,下面让我们来看看一个真实的碰撞案例。我们之所以说MD5过时,是因为它在某些时候已经很难表现出散列算法的某些优势——比如在应对文件的微小修改时,散列算法得到的指纹结果应当有显著的不同,而下面的程序说明了MD5并不能实现这一点。
而诸如此类的碰撞案例还有很多,上面只是原始文件相对较小的一个例子。事实上现在我们用智能手机只要数秒就能找到MD5的一个碰撞案例,因此,MD5在数年前就已经不被推荐作为应用中的散列算法方案,取代它的是SHA家族算法,也就是安全散列算法(Secure Hash Algorithm,缩写为SHA)。
SHA实际包括有一系列算法,分别是SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。而我们所说的SHA2实际是对后面4中的统称。各种SHA算法的数据比较如下表,其中的长度单位均为位:
MD5和SHA1,它们都有4个逻辑函数,而在SHA2的一系列算法中都采用了6个逻辑函数。
以SHA-1为例,算法包括有如下的处理过程:
和MD5处理输入方式相同
经过添加位数处理的明文,其长度正好为512位的整数倍,然后按512位的长度进行分组,可以得到一定数量的明文分组,我们用Y 0 ,Y 1 ,……Y N-1 表示这些明文分组。对于每一个明文分组,都要重复反复的处理,这些与MD5都是相同的。
而对于每个512位的明文分组,SHA1将其再分成16份更小的明文分组,称为子明文分组,每个子明文分组为32位,我们且使用M[t](t= 0, 1,……15)来表示这16个子明文分组。然后需要将这16个子明文分组扩充到80个子明文分组,我们将其记为W[t](t= 0, 1,……79),扩充的具体方法是:当0≤t≤15时,Wt = Mt;当16≤t≤79时,Wt = ( W t-3 ⊕ W t-8 ⊕ W t-14 ⊕ W t-16 ) 1,从而得到80个子明文分组。
所谓初始化缓存就是为链接变量赋初值。前面我们实现MD5算法时,说过由于摘要是128位,以32位为计算单位,所以需要4个链接变量。同样SHA-1采用160位的信息摘要,也以32位为计算长度,就需要5个链接变量。我们记为A、B、C、D、E。其初始赋值分别为:A = 0x67452301、B = 0xEFCDAB89、C = 0x98BADCFE、D = 0x10325476、E = 0xC3D2E1F0。
如果我们对比前面说过的MD5算法就会发现,前4个链接变量的初始值是一样的,因为它们本来就是同源的。
经过前面的准备,下面就是计算信息摘要了。SHA1有4轮运算,每一轮包括20个步骤,一共80步,最终产生160位的信息摘要,这160位的摘要存放在5个32位的链接变量中。
在SHA1的4论运算中,虽然进行的就具体操作函数不同,但逻辑过程却是一致的。首先,定义5个变量,假设为H0、H1、H2、H3、H4,对其分别进行如下操作:
(A)、将A左移5为与 函数的结果求和,再与对应的子明文分组、E以及计算常数求和后的结果赋予H0。
(B)、将A的值赋予H1。
(C)、将B左移30位,并赋予H2。
(D)、将C的值赋予H3。
(E)、将D的值赋予H4。
(F)、最后将H0、H1、H2、H3、H4的值分别赋予A、B、C、D
这一过程表示如下:
而在4轮80步的计算中使用到的函数和固定常数如下表所示:
经过4轮80步计算后得到的结果,再与各链接变量的初始值求和,就得到了我们最终的信息摘要。而对于有多个明文分组的,则将前面所得到的结果作为初始值进行下一明文分组的计算,最终计算全部的明文分组就得到了最终的结果。
ecdhe-rsa-aes256-gcm-sha384 openssl支持么
1、postgresql启动。
service postgresql start1
2、进入postgresql配置
sudo -u postgres psql
alter user postgres with password ‘admin’;12
注意1:’admin’ 这个是密码。
注意2:分号!!!! 一定要带上分号”;”。
注意3:q:退出数据库
3、修改linux系统的postgres用户的密码(密码与数据库用户postgres的密码相同)
root@kali:~# sudo passwd -d postgres
passwd:密码过期信息已更改。
root@kali:~# sudo -u postgres passwd
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码123456
4、修改PostgresSQL数据库配置实现远程访问
root@kali:~# vi /etc/postgresql/9.4/main/postgresql.conf1
更改#listen_addresses = ‘localhost’为listen_addresses = ‘*’
更改#password_encryption = on为password_encryption = on
root@kali:~# vi /etc/postgresql/9.4/main/pg_hba.conf1
在文档末尾加上以下内容
# to allow your client visiting postgresql server
host all all 0.0.0.0/32 md512
root@kali:~# service postgresql restart 1
注意1:”#”号,一定要把”#”删除掉。
注意2:在vi编辑模式下点击键盘字母a是进入编辑模式,编辑完成后点击“esc”退出编辑模式然后在最下方输入”:wq”保存并退出。
5、管理PostgreSQL用户和数据库
root@kali:~# psql -U postgres -h 127.0.0.1
用户 postgres 的口令:
psql (9.4.6)
SSL连接 (协议: TLSv1.2, 加密:ECDHE-RSA-AES256-GCM-SHA384,二进制位: 256, 压缩比: 关闭)
输入 “help” 来获取帮助信息.
postgres=# create user msf with password ‘admin’ nocreatedb;
CREATE ROLE
postgres=# create database msf with owner=msf;
CREATE DATABASE
postgres=# q123456789101112
注意1:还是要注意分号!!!没有分号命令就无法执行。
注意2:注意复制的时候”“符号问题。
注意3:user后面是用户名,password后面是用户名对应的密码。
注意4:命令执行后有返回结果才是执行成功了。
6、msf配置连接
root@kali:~# msfconsole
msf db_status
[*] postgresql selected, no connection
msf db_connect msf:admin@127.0.0.1/msf
[*] Rebuilding the module cache in the background…
msf db_status
[*] postgresql connected to msf
相信经过metamask小编对sha384和sha384加密的介绍,你对sha384了解更加地透彻了,感谢你对我们地支持与关注!
正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |