1. 程式人生 > >1.2常用安全加密

1.2常用安全加密

ffi 相同 單向散列 hang gpg工具 服務 alt 公開 中間

哈希算法(單向散列)

數據相同摘要相同,判斷文件摘要就能知道文件是否相同,比較哈希值。數據不變哈希值不變。

哈希與加密混合使用,對稱與非對稱加密一起用

技術分享圖片

常見算法
md5: 128bits、sha1: 160bits、sha224、sha256、sha384、sha512

常用工具
? md5sum | sha1sum [ --check ] file

[root@centos ~]# md5sum apache.sh
9bcfb6fb9a92e728d387d5c7d48e6df7 apache.sh 哈希值

? openssl、gpg
? rpm -V

密鑰交換:IKE( Internet Key Exchange )

公鑰加密:

DH (Deffie-Hellman):生成會話密鑰

DH: A: g,p 協商生成公開的整數g, 大素數p

B: g,p

A:生成隱私數據 :a (a<p),計算得出 g^a%p,發送給B

B:生成隱私數據 :b,計算得出 g^b%p,發送給A

A:計算得出 [(g^b%p)^a] %p = g^ab%p,生成為密鑰
B:計算得出 [(g^a%p)^b] %p = g^ab%p,生成為密鑰

rpm -V 包名:通過單向散列算法檢驗rpm包的合法性

rpm -K 包名:通過單向散列算法檢驗rpm包的簽名

gpg實現對稱加密

1 對稱加密file文件
gpg -c file

(1)在發送方對文件加密
技術分享圖片

輸入密鑰

技術分享圖片

(2)在接收方解密

技術分享圖片

技術分享圖片
技術分享圖片
在執行解密時需要接收方輸入加密密鑰

技術分享圖片
ls file.gpg

2 在另一臺主機上解密file
gpg -o file -d file.gpg

使用gpg工具實現公鑰加密

?在hostB主機上用公鑰加密,在hostA主機上解密
?在hostA主機上生成公鑰/私鑰對
gpg --gen-key
?在hostA主機上查看公鑰
gpg --list-keys
?在hostA主機上導出公鑰到wang.pubkey
gpg -a --export -o wang.pubkey
?從hostA主機上復制公鑰文件到需加密的B主機上
scp wang.pubkey hostB:

?在需加密數據的hostB主機上生成公鑰/私鑰對
gpg --list-keys
gpg --gen-key
?在hostB主機上導入公鑰
gpg --import wang.pubkey
gpg --list-keys
?用從hostA主機導入的公鑰,加密hostB主機的文件file,生成file.gpg
gpg -e -r wangxiaochun file
file file.gpg

?復制加密文件到hostA主機
scp fstab.gpg hostA:
?在hostA主機解密文件
gpg -d file.gpg
gpg -o file -d file.gpg
?刪除公鑰和私鑰
gpg --delete-keys wangxiaochun
gpg --delete-secret-keys wangxiaochun

中間×××原理

技術分享圖片

CA和證書

證書申請

服務腳本

技術分享圖片

1.2常用安全加密