加密的應用

加密的應用

一、實現對稱加密

1、openssl enc

man enc

算法:3des, aes, blowfish, twofish

加密操作:openssl enc -e -des3 -a -salt -in testfile -out testfile.cipher

解密操作:openssl enc  -d -des3 -a  -salt -in testfile.cipher  -out testfile

2、gpg

 對稱加密file 文件

gpg -c file

ls file.gpg

 在另一臺主機上解密file

gpg -o file -d file.gpg

使用gpg實現公鑰加密

1. 在 在hostB 主機上用公鑰加密,在hostA 主機上解密

2. 在 在hostA 主機上生成公鑰/ 私鑰對

gpg –gen-key

3. 在hostA 主機上查看公鑰

gpg –list-keys            此時的公鑰文件為pubring.gpg,但是其為二進制文件。

1.jpg

4 .在 在hostA 主機上導出公鑰到babyhanggege.pubkey,如上圖。

gpg -a –export -o babyhanggege.pubkey

2.jpg

此時babyhanggege.pubkey中的文件已經是可讀的符號了。

 5. 從hostA 主機上復制公鑰文件到需加密的B主機上

scp babyhanggege.pubkey 10.1.44.3:

6.  在需加密數據的hostB 主機上生成公鑰/ 私鑰對

gpg –list-keys

gpg –gen-key

3.jpg

在生成隨機數過程中盡量使用終端機來做,必要時需要多敲擊鍵盤和移動鼠標。

7.在hostB 主機上導入公鑰

gpg –import babyhanggege.pubkey   (導入密鑰時要切換至A主機的密鑰所在目錄)

gpg –list-keys   (如圖所示,此時就生成了兩把密鑰)

4.jpg

此時我查看B主機的密鑰文件,發現并未看到babyhanggege.pubkey的文件,帶著疑慮查看了pubring.gpg的二進制文件,在這里找到了答案,原來babyhanggege的公鑰已經導進了B主機的pubring.gpg的文件中。(看下圖的最后一行,便可找到答案)

5.jpg

8.用從A主機導入的公鑰,加密hostB主機的文件file,生成file。gpg

命令:gpg -e -r babyhanggege f1

9.復制加密文件到hostA主機

scp f1.gpg 10.1.44.2:  默認拷貝至A主機的家目錄下

10.在hostA主機解密文件

gpg -d f1.gpg (只能進行查看)

gpg -o f1 -d f1.gpg(可以將解密的文件保存下來)

6.jpg

11.刪除公鑰和私鑰

A主機上

gpg –delete-secret-keys babyhanggege    

gpg –delete-keys babyhanggege

經試驗要刪除兩個密鑰,必須先刪除私鑰,才能刪除公鑰!

B主機上

gpg –delete-secret-keys hostB

gpg –delete-keys hostB

gpg –delete-keys babyhanggege (我們僅從A主機上導來了babyhanggege的公鑰)

二、實現單向加密

1、openssl dgst

openssl dgst -md5[-hex]  /PATH/SOMEFILE

openssl dgst -md5 testfile

2、md5sum

md5sum /PATH/TO/SOMEFILE

3、sha1sum

4、sha224sum

5、sha256sum

三、生成密鑰對兒

1、生成私鑰

openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS

(umask 077;openssl genrsa -out key.pri -des 2048)

2、從私鑰中提取出公鑰

openssl rsa -in PRIVATEKEYFILE -pubout -out PUBLICKEYFILE

四、其他

 生成用戶密碼:

passwd 命令:man sslpasswd

openssl passwd -1 -salt SALT( 最多8 位)

openssl passwd -1 –salt centos

7.jpg

 生成隨機數:man sslrand

openssl rand[-out file] [-randfile(s)] [-base64] [-hex]num

NUM:  表示字節數;-hex 時,每個字符4 位,出現的字符數為NUM*2

五、基于key驗證

情形一、linux主機之間的ssh連接

A主機使用SSH去連接B主機

第一次連接時A主機會將B主機的/etc/ssh/ssh_host_rsa_key.pub中公鑰拷貝至A主機自己的/root/.ssh/known_hosts,等下次連接時,B用自己私鑰加密一個數據包給A時,A用此公鑰去解密A用自己私鑰加密的內容,如果能夠解密,那么A會信任確實是之前的B。

1. 在客戶端生成密鑰對兒

ssh-keygen -t rsa [-P ''] [-f “/root/.ssh/id_rsa"]

#ssh-keygen –t rsa –P ‘’ -f “/root/.ssh/id_rsa”

我在centos7上直接ssh -keygen

8.jpg

2. 把公鑰文件傳輸至遠程服務器對應用戶的家目錄

ssh-copy-id [-i [identity_file]] [user@]host

ssh-copy-id -i ./sshd/id_rsa.pub babyhanggege@10.1.44.3

再次連接時就會發現已經不需要密碼了。

只要將公鑰文件任意傳送給別的機器即可,實現連接任意機器無需密碼。

3.添加口令

ssh-keygen -p

4.啟用代理,讓代理幫助記憶口令

情形二、Windows下xshell基于key驗證

1、點擊“工具”選項下,用戶新建密鑰生成向導

9.jpg

2、選擇好密鑰類型與密鑰長度后,進行下一步。

10.jpg

3、名稱信息的確認,該步是為私鑰加密。

11.jpg

4、點擊屬性,點擊公鑰,保存公鑰文件。

12.jpg

5.將公鑰文件傳給所想要連接的主機。

 cat id_rsa_1024.pub > /root/.ssh/authorized_keys

至此即可。

原創文章,作者:178babyhanggege,如若轉載,請注明出處:http://www.www58058.com/48771

(0)
178babyhanggege178babyhanggege
上一篇 2016-09-26 07:44
下一篇 2016-09-26 08:06

相關推薦

  • 【N25第一周作業】Linux上命令的使用格式和基礎命令詳解

    一、Linux上命令的使用格式 命令行提示符詳解: 用戶通過終端的命令行接口來控制操作系統,登陸后如下: [root@localhost ~]# root: 當前登錄的用戶 @:分隔符 localhost: 當前主機的主機名,非完整格式;此處的完整格式為:localhost.localdomain [root@localhost ~]#&…

    Linux干貨 2016-12-03
  • 第五周作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@localhost ~]# awk -F: '/^(root|user1|fedora)/{print $1,"shell is",$NF}' /etc/pass…

    Linux干貨 2016-09-15
  • 認識DNS

    DNS全稱是Domain Name System的簡稱,即域名系統。因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議運行在UDP/TCP協議之上,使用端口號53。 認識DNS 安裝 創建一臺DN…

    Linux干貨 2016-12-07
  • 全球敏捷運維峰會Gdevops 2017成都站嘉賓主題提前看!

    2017年全球敏捷運維峰會(Gdevops, Global Devops Summit)將于2017年在成都、上海、北京、廣州四城全面啟動,本次峰會由上海市經濟和信息化委員會指導,上海市云計算產業促進中心、DBAplus社群主辦,數十家媒體單位共同支持,活動家提供全球敏捷運維峰會在線報名服務。 成都站即將于13日啟航,搭車地址:https://www.huo…

    Linux干貨 2017-05-11
  • 馬哥教育網絡班22期+第五周課程練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [xw@localhost ~]$ cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&…

    Linux干貨 2016-10-09
  • 詳解Linux下用戶和組的配置文件

    本文將介紹Linux下用戶和組的概念及相關配置文件,通過本文,能更好的認識/etc/pssswd ,/etc/group,以及UID、GID的概念,最后將通過修改用戶配置文件來實現用戶和組的管理工作,對Linux的多任務、多用戶有一個更清楚的認識。 一、用戶(USER) 在LInux上用戶的管理工作是通過修改相關的配置文件來實現的,在日常的工作中主要包含對用…

    Linux干貨 2016-10-23

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-26 13:23

    總結的很詳細,操作性性很強,值得學習,

欧美性久久久久