1.对称加密算法
对称加密:加密和密钥使用同一个密钥
特性:
加密,解密使用同一个密钥,效率高
将原始数据分割成固定大小的块,逐个进行加密
缺陷:
密钥过多
密钥分发
数据来源无法确认
常见对称加密算法:DES,3DES,AES
2.非对称加密算法
非对称加密:密钥是成对出现
公钥:public key,公开给所有人,主要给别人加密使用
私钥:secret key,自己留存,必须保证其私密性,用于自己加密签名
特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
功能:
数据加密:适合加密较小数据,比如:加密对称密钥
数字签名:主要在于让接收方确认发送方身份
缺点:
密钥长,算法复杂
加密解密效率地下
常见算法:RSA,DSA
非对称加密实现数字签名
发送者
生成公钥/私钥对:P和S
公开公钥P,保密密钥S
使用密钥S来加密消息M
发送给接收者S(M)
接收者
使用发送者的公钥来解密M=P(S(M))
3.使用gpg实现对称和非对称加密
实现对称加密
对称加密file文件
gpg -c file
在另一台主机上解密file
gpg -o file -d file.pgp
实现公钥加密
目标:在hostB主机上用hostA公钥加密,在hostA主机上解密
在hostA主机上生成公钥/私钥对
gpg --gen-key
在hostA主机上查看公钥
gpg --list-key
在hostA主机上导出公钥到yang.pubkey
gpg -a --export -o yang.pubkey
从hostA主机上复制公钥文件到需加密的B主机上
scp yang.pubkey hostB:
在需要加密数据的hostB主机上生成公钥/私钥对
gpg --list-keys gpg --gen-key
在hostB主机上导入公钥
gpg --import yang.pubkey gpg --list-keys
用从hostA主机导入的公钥,加密hostB主机的文件file,生成file.gpg
gpg -e -r yangbowen file file file.gpg
复制加密文件到hostA主机
scp fstab.gpg hostA:
在hostA主机解密文件
gpg -d file.gpg gpg -o file -d file.gpg
删除公钥和私钥
gpg --delete-keys yangbowen gpg --delete-secret-keys yangbowen
4.单项哈希算法