一、HASH算法
哈希散列算法和哈希摘要算法都叫做哈希算法。
(1)概念:
- 把一段任意长度的数据变成均匀分布固定长度的数据、反之不可以
- Hash不可逆
- 在任何电脑,手机,或者笔算Hash值都是一样的
- y=Hash(x) 已知x可以得到y,反之不可以
- Hash散列就像一个人的指纹
- Hash的结果y是均匀分布的
(2)常见hash算法
- MD5 64位(Message-Digest Algorithm 5 消息摘要算法第五版)
安全哈希算法 Secure Hash Algorithm(SHA)
- SHA1 160位
- SHA256 256位(比特币选择的双重SHA256算法,SHA256D)
- SHA512 512位
- RIPEMD-160 160位(比特币地址使用)
目前MD5和SHA1已经被中国山东大学王小云教授和Google攻破
在线hash算法工具:http://tool.oschina.net/encrypt?type=2
二、对称加密算法和非对称加密算法两者特点
三、对称加密算法
- DES加解密算法:
比较老的算法,一共有三个参数入口(原文,密钥,加密模式)。而3DES只是DES的一种模式,是以DES为基础更安全的变形,对数据进行了三次加密,也是被指定为AES的过渡算法。
- AES加解密算法
高级加密标准,新一代标准,加密速度更快,安全性更高。
四、非对称加密算法
- RSA算法:
RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest),阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年7月首次在美国公布,当时他们三人都在麻省理工学院工作实习。由其三人姓氏首字母组成。
RSA算法基于一个的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却及其困难,因此可以将乘积公开作为加密密钥。
- ECC算法
Ellipse Curve Cryptography,椭圆曲线算法(比特币使用)。与传统的基于大质数因子分解困难性的加密算法不同,ECC通过椭圆曲线方程性质产生密钥ECC164位的密钥产生一个安全级,相当于RSA1024位密钥提供的保密强度,而且计算量更小,处理速度更快,存储空间和传输带宽占用较少。目前居民二代身份证正在使用256位的椭圆曲线密码,虚拟货币比特币也选择ECC作为加密算法。
RSA与ECC的对比
五、商业加密方式
- 混合对称加密和非对称加密方式
- 对称加密
优点:加密,加密快速,使用简单。
缺点:密码/密钥需要在网络上传输,不安全。
- 非对称加密
优点:只有公钥在网络上传输,私钥留在本地,安全。
缺点:加密,加密比较慢,使用复杂
- 混合模式(对称和非对称)https/tls
使用对称加密模式,但是对称加密的密码使用非对称加密方式传输。
组合了对称加密和非对称加密的有点,摒弃了它们的缺点。