security

阅读更多
数据完整性,数据可靠性(扛否认性),数据保密性

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

你可能感兴趣的:(算法,algorithm,密钥,加密,证书)