security
程序员文章站
2022-03-19 18:52:50
...
数据完整性,数据可靠性(扛否认性),数据保密性
Base64不算是加密算法,类似于表单置换算法,可逆
消息摘要算法:验证数据的完整性
任何数据经过散列函数处理后,都会获得唯一的散列值。这一个过程称
消息摘要,散列值称为数字指纹,算法就是消息摘要算法。
此过程是不可逆的。
MD5
SHA
MAC
消息摘要一般都是通过MessageDigest类完成
String algorithm = "MD5" or "SHA"
MessageDigest md = MessageDigest.getInstance
(algorithm);
md.digest(data)
MAC加入了密钥的支持
Mac mac = Mac.getInstance(secretkey.getAlgorithm);
mac.init(secretKey);
mac.doFinal(data);
对称密约算法:保密性,加密与解密
DES
DESede
AES
IDEA
PBE
DES
String KEY_ALGORITHM = "DES";
String CIPHER_ALGORITHM = "DES/ECB/PKCS5Padding";
KeyGnerator kg = KeyGenerator.getInstance(KEY_ALGORITHM);
kg.init(56);
SecretKey secretKey = kg.generateKey();
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE,secretKey );
cipher.doFinal(data);
Cipher cipher = Cipher.getInstance
(CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE,key);
cipher.doFinal(data);
非对称密约算法:验证可靠性和保密性,签名与验证和加密与解密
DH
RSA
ELGamal
非对称密钥的加密和解密效率比较低,所以使用对称密钥进行加密解密
数字签名:
非对称密钥加消息摘要
消息摘要用于验证数据完整性,对称和非对称密钥保证数据保密性,数字签名用于扛否认性。
数字证书
自带公钥,完成加密解密;自带数字签名,鉴别消息来源;自带消息摘要,验证证书完整性。
非对称密钥即可以完成加密解密,也可以使用私钥签名和公钥验证完成签名与验证,而sha或md5等验证完整性。
消息摘要:可以在保存密码时用,密码只是作于验证,所以只要散列值就可以啦。
对称密钥:保存写重要信息,如私钥信息。因为私钥要用于别处,所以需要它自身信息。
数字证书:在建立SSL通信时候用。
非对称密钥:签名与验证,在url connection中,可用于验证。
Base64不算是加密算法,类似于表单置换算法,可逆
消息摘要算法:验证数据的完整性
任何数据经过散列函数处理后,都会获得唯一的散列值。这一个过程称
消息摘要,散列值称为数字指纹,算法就是消息摘要算法。
此过程是不可逆的。
MD5
SHA
MAC
消息摘要一般都是通过MessageDigest类完成
String algorithm = "MD5" or "SHA"
MessageDigest md = MessageDigest.getInstance
(algorithm);
md.digest(data)
MAC加入了密钥的支持
Mac mac = Mac.getInstance(secretkey.getAlgorithm);
mac.init(secretKey);
mac.doFinal(data);
对称密约算法:保密性,加密与解密
DES
DESede
AES
IDEA
PBE
DES
String KEY_ALGORITHM = "DES";
String CIPHER_ALGORITHM = "DES/ECB/PKCS5Padding";
KeyGnerator kg = KeyGenerator.getInstance(KEY_ALGORITHM);
kg.init(56);
SecretKey secretKey = kg.generateKey();
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE,secretKey );
cipher.doFinal(data);
Cipher cipher = Cipher.getInstance
(CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE,key);
cipher.doFinal(data);
非对称密约算法:验证可靠性和保密性,签名与验证和加密与解密
DH
RSA
ELGamal
非对称密钥的加密和解密效率比较低,所以使用对称密钥进行加密解密
数字签名:
非对称密钥加消息摘要
消息摘要用于验证数据完整性,对称和非对称密钥保证数据保密性,数字签名用于扛否认性。
数字证书
自带公钥,完成加密解密;自带数字签名,鉴别消息来源;自带消息摘要,验证证书完整性。
非对称密钥即可以完成加密解密,也可以使用私钥签名和公钥验证完成签名与验证,而sha或md5等验证完整性。
消息摘要:可以在保存密码时用,密码只是作于验证,所以只要散列值就可以啦。
对称密钥:保存写重要信息,如私钥信息。因为私钥要用于别处,所以需要它自身信息。
数字证书:在建立SSL通信时候用。
非对称密钥:签名与验证,在url connection中,可用于验证。
推荐阅读
-
SpringBoot+Spring Security无法实现跨域的解决方案
-
Yii框架官方指南系列51——专题:安全措施 (Security)
-
1.3 Security,1.3Security_PHP教程
-
security.js实现的RSA加密功能示例
-
详解Spring Boot 使用Spring security 集成CAS
-
详解Spring Security 简单配置
-
学习acegi-security
-
Java开发之spring security实现基于MongoDB的认证功能
-
SpringBoot+Spring Security+JWT实现RESTful Api权限控制的方法
-
Spring Security整合CAS的示例代码