欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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中,可用于验证。