龙空技术网

信息加密算法整理总结

美味手擀面 35

前言:

而今你们对“java 摘要算法”可能比较关切,大家都想要了解一些“java 摘要算法”的相关知识。那么小编在网摘上搜集了一些对于“java 摘要算法””的相关文章,希望姐妹们能喜欢,咱们快快来学习一下吧!

信息加密算法 分为单向加密,对称加密,非对称加密。

1,单向加密算有MD5和SHA,由单向散列函数实现,输入或者说原始数据称为消息,加密或者散列之后称为散列值.

1.1,特点:

a,只能加密,不能解密。

b,长度固定,同一个消息对应同一个散列值。

c,计算速度较快。

1.2,应用场景:

a, 密码加密。存储密码的散列值,而不是明文密码,只有用户知道自己的密码,散列值相同即表示密码相同。还可以加盐处理。

b,接口验签,使用共享密钥(保密),签名 以共享密钥+业务参数,进行散列运算,接受者以同样的方式加密 比较是否一致。

c,文件完整性校验,下载文件时还有个散列值及其算法,下载下来之后可以通过相同的算法加密该文件,与下载下来的散列值比较,不相同则文件被伪造。

d,云盘秒传。当上传一个文件时,文件服务器会为该文件生成一个散列值,然后到数据库匹配,如果该文件存在,则直接关联记录地址即可。

1.3,JDK的 java.security.MessageDigest 类为我们提供了消息摘要算法,用于 MD5和SHA的散列值生成。

有什么单向加密搞不定的加密场景吗?肯定有,那就是需要还原消息的场景,比如我要加密参数然后传输,之后还需要把参数还原出来,单向加密就没啥用处了,还原不出来。

这个时候需要对称加密和非对称加密出场,

对称加密算法有DES,DES3,AES,对称加密完全依赖密钥,如果密钥丢失则都可以加解密。

非对称加密有 RSA等。两个密钥,公钥加密,私钥解密。耗时较长。

JDK的 javax.crypto.Cipher 这个类为我们提供了对称和非对称加密算法的实现。

基于算法在当前已知攻击方法时密钥的长度和大小,适当的参数选择(如密钥长度)和实现安全性也对安全强度有重大影响。

1,MRD码和同态加密:最新的、基于比较复杂数学问题的加密技术,未知有效攻击手段,认为安全性很高。

2,AES-256:目前最为推荐的对称加密标准,长密钥提供高级别的安全性。

3,ECC:基于椭圆曲线,相对于RSA,提供同等安全级别下更短的密钥,视作安全。

4,RSA:使用足够长的密钥(2048位或以上)时被认为是安全的,但由于潜在的量子计算威胁,安全地位可能在未来受到挑战。

5,SHA-3:最新的安全散列算法,设计的目的是替代SHA-2,为未来的安全威胁做好准备。

6,SHA-256:SHA-2系列中广泛被使用的安全散列算法,被视作安全。

7,3DES:比DES安全,但由于其使用了DES算法,因此对暴力攻击的抵御力较AES弱。

8,SHA-1:由于安全弱点,不再推荐用于安全敏感的环境。

9,MD5:已经被证明对碰撞攻击非常脆弱,被认为是不安全的。

10,DES:因为其短密钥长度而非常容易受到现代暴力攻击的破解,被认为基本不安全。

标签: #java 摘要算法