#干货-加密(概述)

作者: _Comma | 来源:发表于2016-10-10 11:23 被阅读88次

    好像好久没有分享点干货了,今天工作没那么忙了,就赶紧分享点,有用的朋友可以get一下,大神多多提建议,毕竟菜鸟一枚。

    一、MD5加密(后面会分享)

    二、HMAC加密

    此加密方法需要先生成密钥,然后再对密码进行MD5和HMAC加密,数据库中需要存放当时使用的密钥和密码加密后的密文,在用户登陆时,再次对填入的密码用密钥进行加密 并且还要加上当前时间(精确到分钟)。再次HMAC加密,服务器里也会拿出以前存放的密文加上时间再次加密。所以就算黑客在中途截取了密码的密文。也在能在1分钟只能破译才能有效,大大加强了安全性。服务器为了考虑到网络的延迟一般会多算一种答案,如23分过来的密码,他会把23分和22分的都算一下和用户匹配只要对上一个就允许登陆。如图,用户注册与用户登录

    三、base64加密(后面有时间会再分享关于base64)

    四、对称加密算法

    优点:算法公开、计算量小、加密速度快、加密效率高、可逆

    缺点:双方使用相同钥匙,安全性得不到保证

    现状:对称加密的速度比公钥加密快很多,在很多场合都需要对称加密,

    相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准

    nECB :电子代码本,就是说每个块都是独立加密的

    nCBC :密码块链,使用一个密钥和一个初始化向量 (IV)对数据执行加密转换

    ECB和CBC区别:CBC更加复杂更加安全,里面加入了8位的向量(8个0的话结果等于ECB)。在明文里面改一个字母,ECB密文对应的那一行会改变,CBC密文从那一行往后都会改变。

    ECB终端命令:

    $ openssl enc -des-ecb -K 616263 -nosalt -in msg1.txt -out msg1.bin

    CBC终端命令:

    $ openssl enc -des-cbc -K 616263 -iv 0000000000000000 -nosalt -in msg1.txt -out msg2.bin

    五、RSA加密

    RSA非对称加密算法

    非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密

    特点:非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了

    基本加密原理:

    (1)找出两个“很大”的质数:P & Q

    (2)N = P * Q

    (3)M = (P – 1) * (Q – 1)

    (4)找出整数E,E与M互质,即除了1之外,没有其他公约数

    (5)找出整数D,使得E*D除以M余1,即(E * D) % M = 1

    经过上述准备工作之后,可以得到:

    E是公钥,负责加密

    D是私钥,负责解密

    N负责公钥和私钥之间的联系

    加密算法,假定对X进行加密

    (X ^ E) % N = Y

    n根据费尔马小定义,根据以下公式可以完成解密操作

    (Y ^ D) % N = X

    但是RSA加密算法效率较差,对大型数据加密时间很长,一般用于小数据。

    常用场景:分部要给总部发一段报文,先对报文整个进行MD5得到一个报文摘要,再对这个报文摘要用公钥加密。然后把报文和这个RSA密文一起发过去。总部接收到报文之后要先确定报文是否在中途被人篡改,就先把这个密文用私钥解密得到报文摘要,再和整个报文MD5一下得到的报文摘要进行对比,如果一样就是没被改过。

    为什么我写的时候板式总是弄不好,行间距总是这么大,谁能告诉我一下么,

    相关文章

      网友评论

        本文标题:#干货-加密(概述)

        本文链接:https://www.haomeiwen.com/subject/engmyttx.html