【Java-加密算法】对称加密、非对称加密、单向散列
2015-08-30 02:05
609 查看
一提到加密,就会联想到数字签名,这两个经常被混淆的概念到底是什么呢?
加密:加密是一种以密码方式发送信息的方法。只有拥有正确密钥的人才能解开这个信息的密码。对于其他人来说,这个信息看起来就像是一系列随机的字母、数字和符号。如果你要发送不应该让其他人看的敏感信息时,加密是特别重要的。
数字签名:数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
加密与数字签名的区别
加密同数字签名一样,公共密钥加密使用PGP等软件,使用数学算法转换信息并且依靠公共和专用密钥。但是,加密和数字签名是有区别的,加密的目的是通过把信息翻译成密码秘密地隐藏内容。数字签名的目的是完整性和身份识别性,验证一个信息的发送者和指出内容没有被修改。虽然加密和数字签名能够单独使用,但是,你还可以对加密的信息采用数字签名。
当你签署一个信息时,你使用你的专用密钥,任何有你的公共密钥的人都能够验证这个签名是合法的。当你加密一个信息的时候,你为接收你的信息的人使用这个公共密钥,并且使用他或者她的专用密钥解码这个信息。用于人们要保持自己的专用密钥的机密,并且使用口令保护这些密钥,这个信息的接收者应该是惟一的能够观看这个信息的人。
算法分类
一、单向散列算法: 属于摘要算法,不是一种加密算法,作用是把任意长的输入消息串变化成固定长的输出串的一种函数
BASE64(严格地说,属于编码格式,而非加密算法)
MD5(Message Digest algorithm 5,信息摘要算法)
SHA(Secure Hash Algorithm,安全散列算法)
HMAC(Hash Message Authentication Code,散列消息鉴别码)
CRC(Cyclical Redundancy Check,循环冗余码校验)
二、对称加密算法: 加密密钥与解密密钥相同
DES(Data Encryption Standard,数据加密标准算法)
AES(Advanced Encryption Standard,高级加密标准)
PBE(Password-based encryption,基于密码验证)
RC5(参数可变的分组密码算法 )
BLOWFISH(对称密钥分组加密算法)
三、非对称加密算法 :加密密钥与解密密钥不相同
RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)
DH(Diffie-Hellman算法,密钥一致协议)
Elgamal(既能用于数据加密也能用于数字签名)
DSA(Digital Signature Algorithm,数字签名)
ECC(Elliptic Curves Cryptography,椭圆曲线算法)
Merkle-Hellman(背包算法)
Miller Rabin算法(素数测试算法)
参考资料
数字签名
加密
单向散列算法
对称加密算法
非对称加密算法
BASE64算法
MD5算法
SHA算法
HMAC算法
CRC算法
DES算法
AES算法
PBE算法
RC5算法
BLOWFISH算法
RSA算法
Diffie-Hellman算法
ElGamal算法
DSA算法
椭圆曲线算法
Merkle-Hellman背包算法
Miller Rabin算法
加密:加密是一种以密码方式发送信息的方法。只有拥有正确密钥的人才能解开这个信息的密码。对于其他人来说,这个信息看起来就像是一系列随机的字母、数字和符号。如果你要发送不应该让其他人看的敏感信息时,加密是特别重要的。
数字签名:数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
加密与数字签名的区别
加密同数字签名一样,公共密钥加密使用PGP等软件,使用数学算法转换信息并且依靠公共和专用密钥。但是,加密和数字签名是有区别的,加密的目的是通过把信息翻译成密码秘密地隐藏内容。数字签名的目的是完整性和身份识别性,验证一个信息的发送者和指出内容没有被修改。虽然加密和数字签名能够单独使用,但是,你还可以对加密的信息采用数字签名。
当你签署一个信息时,你使用你的专用密钥,任何有你的公共密钥的人都能够验证这个签名是合法的。当你加密一个信息的时候,你为接收你的信息的人使用这个公共密钥,并且使用他或者她的专用密钥解码这个信息。用于人们要保持自己的专用密钥的机密,并且使用口令保护这些密钥,这个信息的接收者应该是惟一的能够观看这个信息的人。
算法分类
一、单向散列算法: 属于摘要算法,不是一种加密算法,作用是把任意长的输入消息串变化成固定长的输出串的一种函数
BASE64(严格地说,属于编码格式,而非加密算法)
MD5(Message Digest algorithm 5,信息摘要算法)
SHA(Secure Hash Algorithm,安全散列算法)
HMAC(Hash Message Authentication Code,散列消息鉴别码)
CRC(Cyclical Redundancy Check,循环冗余码校验)
二、对称加密算法: 加密密钥与解密密钥相同
DES(Data Encryption Standard,数据加密标准算法)
AES(Advanced Encryption Standard,高级加密标准)
PBE(Password-based encryption,基于密码验证)
RC5(参数可变的分组密码算法 )
BLOWFISH(对称密钥分组加密算法)
三、非对称加密算法 :加密密钥与解密密钥不相同
RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)
DH(Diffie-Hellman算法,密钥一致协议)
Elgamal(既能用于数据加密也能用于数字签名)
DSA(Digital Signature Algorithm,数字签名)
ECC(Elliptic Curves Cryptography,椭圆曲线算法)
Merkle-Hellman(背包算法)
Miller Rabin算法(素数测试算法)
参考资料
数字签名
加密
单向散列算法
对称加密算法
非对称加密算法
BASE64算法
MD5算法
SHA算法
HMAC算法
CRC算法
DES算法
AES算法
PBE算法
RC5算法
BLOWFISH算法
RSA算法
Diffie-Hellman算法
ElGamal算法
DSA算法
椭圆曲线算法
Merkle-Hellman背包算法
Miller Rabin算法
相关文章推荐
- openJDK7 编译过程 ~ Mac OS X 环境
- Java集合类型之HashMap
- Introduction to Java Programming编程题10.7<ATM>
- BUG:eclipse SVN不显示Repository和git不匹配repository
- java排序方法
- javaWeb解决中文乱码问题终极办法字符流转换
- java_基础篇_01(补)
- javaWeb利用Filter解决中文乱码问题
- Java-instanceof总结
- Java-instanceof总结
- Java-instanceof总结
- shirt----spring security的另外一个选贤
- Java学习之旅_基础篇_05
- Java集合之TreeSet
- Java集合之TreeSet
- Java-TreeSet源码分析及示例
- JAVA POST GET
- Java集合之HashSet
- Java集合之HashSet
- Java-HashSet源码分析及示例