几种常见加密算法

一、加密算法分类

双向加密算法单向加密算法(散列算法)
对称加密算法非对称加密算法MD5,SHA1,HMAC
AES、DES、3DESRSA,DSA,ECC
双方采用共同的密钥和加密算法A用B的公钥将消息加密,发送给B,B用自己的私钥对消息进行解密的过程不可逆,只能加密,不能解密

二、算法比较

1、散列算法比较

名称安全性速度
SHA-1
MD5

2、对称加密算法比较

名称密钥名称运行速度安全性资源消耗
DES56位较快
3DES112位或168位
AES128、192、256位

3、非对称加密算法比较

名称成熟度安全性运算速度资源消耗
RSA
ECC

 

三、算法特点

1、对称加密

  1. 特点:算法公开、它要求和接发送方收方在安全通信之前,商定一个秘钥,共同用这个秘钥进行加密和解密
  2. 密钥管理:比较难,不适合互联网,一般用于内部系统

  3. 安全性:中

  4. 加密速度:快好 几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特 数据),适合大数据量的加解密处

2、非对称加密

  1. 特点:算法强度复杂
  2. 密钥管理:密钥容易管理

  3. 安全性:高

  4. 加密速度:比较慢,适合 小数据量 加解密或数据签名

3、散列算法

  1. 特点:算法强度复杂
  2. 密钥管理:无秘钥

  3. 安全性:极高

  4. 加密速度:很慢

四、SHA256散列算法

SHA256(Secure Hash Algorithm)算法是SHA家族(SHA1、SHA224、SHA256等)中的重要一员,SHA系列算法是美国国家安全局设计,美国国家标准与技术研究院 发布的一系列密码散列函数。

著名的比特币算法就是通过SHA256实现的。由于SHA家族算法的优异加密效果,为此在很多层面具有广泛的应用,比如在银行、购物网站等都使用SHA加密算法对用户的敏感信息加密,用户首次设置密码时,系统对密码进行SHA加密并将加密结果保存到数据库,如果用户需要消费或者购物时,用户输入密码后,系统再次对密码进行SHA计算,并将结果与数据库加密密码进行比较,如果两者一致,就认为用户合法。这样做的好处十分明显,比如相关工作人员在没有权限的情况下,很难知道用户的密码与相关敏感信息。

SHA算法能否被解密呢?

SHA是散列算法,并非加密算法,也当然也不存在解密的问题。正确的说法应该叫“破解”。所谓破解就是找到任意一个源数据,能够生成相同的目标数据,即“碰撞”。目前的计算能力下,SHA256基本上是不可破解的,即找不到(或概率极小)“碰撞”结果。

然而,就在2017年2月24日,谷歌公司宣布成功破解SHA1散列算法。Google解释,所谓的碰撞是让不同的文件产生同样的摘要,这事通常不会发生,除非SHA1算法含有安全漏洞(密码学家们在2005年就发现SHA1含有理论上的漏洞,可造成碰撞攻击(Collision attack),允许骇客打造拥有同样讯息摘要的文件,以方便伪装及取代合法文件)。Google与CWI花费了两年的时间进行研究,终于发现在SHA1上产生碰撞的第一个可行技术,成功地执行了碰撞攻击。为了证明此事,Google释出了两个含有不同内容、却拥有同样讯息摘要的PDF档案。

虽然已经证明了SHA1的碰撞攻击是得以实践的,但不幸中的大幸是,要执行该攻击必须使用非常大量的运算资源,依照Google的说法,这是他们所完成的最大规模的运算之一,总计执行了9百京(quintillion,10的18次方)次的SHA1运算,若以一年为期,要用6500个CPU来完成第一阶段的计算,再用110个GPU进行第二阶段计算。相较之下,另一讯息摘要演算法MD5只要利用一台智慧型手机及30秒的时间就能被攻陷。

五、Base64加密算法

严格来讲base64并不是一种加密算法,而是一种编码转换。

Base64一般用于在HTTP协议下传输二进制数据,由于HTTP协议是文本协议,所以在HTTP协议下传输二进制数据需要将二进制数据转换为字符数据。然而直接转换是不行的。因为网络传输只能传输可打印字符。什么是可打印字符?在ASCII码中规定,0~31、127这33个字符属于控制字符,32~126这95个字符属于可打印字符,也就是说网络传输只能传输这95个字符,不在这个范围内的字符无法传输。那么该怎么才能传输其他字符呢?其中一种方式就是使用Base64。

Base64特点

可逆,后一两位可能有“=”,生成的编码都是ascii字符。
优点:速度快,ascii字符,肉眼不可理解
缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合

 

六、加密算法输出长度

算法输出长度(bit--位)输出长度(Byte--字节)
MD512816
SHA116020
SHA25625632
 所占字节
 一个英文字母一个中文汉字
ASCII12
UTF-813
Unicode22

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值