几种常用加解密算法简单介绍
来源:互联网 发布:知乎 好看的魔幻小说 编辑:程序博客网 时间:2024/05/16 11:35
1)
MessageDigest是一个数据的数字指纹.即对一个任意长度的数据进行计算,产生一个唯一指纹号.
MessageDigest的特性:
A)
B)
代表:MD5/SHA
2)
单密钥算法,是信息的发送方采用密钥A进行数据加密,信息的接收方采用同一个密钥A进行数据解密.
单密钥算法是一个对称算法.
缺点:由于采用同一个密钥进行加密解密,在多用户的情况下,密钥保管的安全性是一个问题.
代表:DES
3)
RSA 是一种非对称加解密算法。
RSA is named from the initials of the authors, Ron Rivest, Adi Shamir, and
Leonard Adleman,who first published the algorithm.
RSA 与 DSA 都是非对称加密算法。其中RSA的安全性是基于极其困难的大整数的分解(两个素数的乘积);DSA 的安全性
是基于整数有限域离散对数难题。基本上可以认为相同密钥长度的 RSA 算法与 DSA 算法安全性相当。
公钥用于加密,它是向所有人公开的;私钥用于解密,只有密文的接收者持有。
适用OPENSSL 适用RSA
生成一个密钥(私钥)
[root@hunterfu ~]# openssl genrsa -out private.key 1024
注意: 需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密,后面的1024是生成
密钥的长度.
通过密钥文件private.key 提取公钥
[root@hunterfu ~]# openssl rsa -in private.key -pubout -out pub.key
使用公钥加密信息
[root@hunterfu ~]# echo -n "123456" | openssl rsautl -encrypt -inkey pub.key -pubin >encode.result
使用私钥解密信息
[root@hunterfu ~]#cat encode.result | openssl rsautl -decrypt
4)
来验证签名的真实性。DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,
只用于签名,它比RSA要快很多.
生成一个密钥(私钥)
生成公钥
[root@hunterfu ~]# openssl dsa -in privkey.pem -out pubkey.pem -pubout
[root@hunterfu ~]# rm -fr dsaparam.pem
使用私钥签名
[root@hunterfu ~]# echo -n "123456" | openssl dgst -dss1 -sign privkey.pem > sign.result
使用公钥验证
[root@hunterfu ~]# echo -n "123456"
5)
圆曲线算法。
(1)相同密钥长度下,安全性能更高,如160位ECC已经与1024位RSA、DSA有相同的安全强度。
(2)计算量小,处理速度快,在私钥的处理速度上(解密和签名),ECC远 比RSA、DSA快得多。
(3)存储空间占用小 ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多, 所以占用的存储空间小得多。
(4)带宽要求低使得ECC具有广泛得应用前景。
转载自:http://blog.sina.com.cn/s/blog_a9303fd90101cgw4.html
- 几种常用加解密算法简单介绍
- 简单加解密算法
- Android常用加解密算法
- 几种常用的加解密的方法
- DES方式加解密的简单介绍
- AES方式加解密的简单介绍
- AES加解密算法的模式介绍
- AES加解密算法的模式介绍
- 一个简单的加解密算法
- 最简单的文件加解密算法
- 简单介绍几种排序算法
- 常用JAVASCRIPT加解密
- 简单xor加解密
- 简单的加解密
- Java简单加解密
- 简单加解密
- C++简单加解密
- 常用加解密算法总结1-DES、TDES、3DES
- Blend for Visual Studio 2013
- Android 控件之 Fragment
- Java字符串常用方法
- 机器学习实战 决策树 算法 笔记
- mob.com ShareSDK 实现分享功能
- 几种常用加解密算法简单介绍
- POJ-2501(用例能过,但一直WA)
- Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flash Player
- hdu 1297
- Qt中常见对话框的使用/QMessageBox/QFontDialog/QFileDialog
- java设计模式
- C++嵌套类/局部类
- [Android UI] 波浪特效的实现
- [leetcode 58] Length of Last Word