alancxx

          ------簡單就是美

          Fedora Core 4下的GPG加密解密及文件完整性驗證

          準備知識:
          對稱加密:
          發送方: 010111 XOR 101100 = 111011   (101100為加密密鑰)
          接收方: 111011 XOR 101100 = 010111
          公鑰加密:
          發送方產生兩把密鑰:公鑰(Public Key)&私鑰(Private Key),也就是密鑰對(Key Pair)
          明文->公鑰加密->密文->私鑰解密->明文
          數字簽名:
          ....


          -----------------------------發送方的操作-------------------------------------
          sh# mkdir ~/.gnupg   //默認是把密鑰對存在此目錄
          sh# gpg --gen-key //生成公鑰pubring.gpg,私鑰secring.gpg,郵箱是很重要的
          sh# gpg --list-keys //查看所有密鑰,如果生成了多個密鑰對的話就有多個了
          sh# gpg --list-public-key //查看所有公鑰,注意pub后面的*號字符串,pub xxxxx/******** 2007-07-10,它就是以下可能用到的KEYID
          sh# gpg --list-secret-key //查看所有密鑰
          sh# gpg --list-sig //查看所有簽名
          sh# gpg --export-secret-keys -a -o secring.asc //導出私鑰,作為備份
          sh# gpg -a --export zjstandup@126.com >test.gpg //導出公鑰,郵箱名是第一步填的,對應于zjstandup@126.com的公匙信息就保存到了test.gpg文件中,此文件可以由郵箱發送或上傳至公鑰服務器供別人下載(如subkeys.pgp.net),有點像BT種子,哈哈

          /**此處將演示怎么把公鑰上傳至公鑰服務器上,可以直接去網站上傳,也可以像以下這樣用命令上傳
          sh# gpg --send-keys KEYID //KEYID用以上那個代替,默認好像是傳到了subkeys.pgp.net,文件名就不是test.gpg了,這些公鑰服務器好像是全球同步更新!厲害阿!

          **/


          sh# gedit test.txt //生成一個文本,里面輸入點東西,用于以下測試

          將演示兩種驗證方式和一個數字簽名
          一種是公鑰驗證,大概是用于驗證文件完整性,相當于:sh#md5sum ***;
          另一種是私鑰驗證,控制只讓那些知道密碼的人能打開看

          sh# gpg --clearsign test.txt //使用私匙對數據進行簽名,生成test.txt.asc,打開此文件還是可以看到內容的,只是多了一些東西,把這個發給其他人,這個演示公鑰驗證
          sh# gpg --output test.txt.gpg -r zjstandup@126.com -as --encrypt test.txt //導入私鑰,數據被加密成了test.txt.gpg,打開此文件看不到原信息的,把這個發給對方,這個演示私鑰驗證
          sh# gpg --output test.sig --sign test.txt //這個演示數字簽名



          ---------------------------接收方的操作------------------------------------------
          /**下載公鑰,由郵件接收或者從服務器上下載,此處演示從服務器下載
          sh# gpg --search-keys zjstandup@126.com //搜索公鑰,啟動了全球搜索?!然后填入1就下載!

          **/
          sh# gpg --import test.gpg //導入公鑰至本機,test.gpg由發送方郵件傳輸過來或從公鑰服務器下載過來的

          /**以下一段不太清楚,好像是防止公鑰被篡改,驗證公鑰的完整性
          sh# gpg --fingerprint zjstandup@126.com //指紋取樣,防偽造的公鑰,執行后可以看到密鑰指紋,可以通過其他通訊方式咨詢對方,是否是這個公鑰(應該是上方讓大家注意的pub后面的字符串)
          sh# gpg --sign-key zjstandup@126.com
          sh# gpg --check-sigs zjstandup@126.com
          sh# gpg --edit-key zjstandup@126.com
          sh# trust
          sh# quit
          **/

          1:公鑰驗證
          sh# gpg --verify test.txt.asc //將有信息表明是完整的簽字,假如改變了這個文件里面的信息再執行此命令,將出現不同的結果哦!

          2:私鑰驗證
          sh# gpg --decrypt test.txt.gpg > zjstandup.txt //執行,要輸入正確的密碼(在發送端生成密鑰對時的那個)才能生成txt

          3;數字簽名
          sh# gpg --output sig.txt --decrypt test.sig //將顯示完整的簽字并還原內容生成sig.txt


          sh# gpg --help >> manule.txt
          sh# gedit manule.txt

          //將看到以下說明
          gpg (GnuPG) 1.4.1
          Copyright (C) 2005 Free Software Foundation, Inc.
          This program comes with ABSOLUTELY NO WARRANTY.
          This is free software, and you are welcome to redistribute it
          under certain conditions. See the file COPYING for details.

          Home: ~/.gnupg
          支持的算法:
          公鑰:RSA, RSA-E, RSA-S, ELG-E, DSA
          對稱加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
          散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
          壓縮:不壓縮, ZIP, ZLIB, BZIP2

          語法:gpg [選項] [文件名]
          簽字、檢查、加密或解密
          默認的操作依輸入數據而定

          指令:

          -s, --sign [文件名]           生成一份簽字
               --clearsign [文件名]      生成一份明文簽字
          -b, --detach-sign             生成一份分離的簽字
          -e, --encrypt                 加密數據
          -c, --symmetric               僅使用對稱加密
          -d, --decrypt                 解密數據(默認)
               --verify                  驗證簽字
               --list-keys               列出密鑰
               --list-sigs               列出密鑰和簽字
               --check-sigs              列出并檢查密鑰簽字
               --fingerprint             列出密鑰和指紋
          -K, --list-secret-keys        列出私鑰
               --gen-key                 生成一副新的密鑰對
               --delete-keys             從公鑰鑰匙環里刪除密鑰
               --delete-secret-keys      從私鑰鑰匙環里刪除密鑰
               --sign-key                為某把密鑰添加簽字
               --lsign-key               為某把密鑰添加本地簽字
               --edit-key                編輯某把密鑰或為其添加簽字
               --gen-revoke              生成一份吊銷證書
               --export                  導出密鑰
               --send-keys               把密鑰導出到某個公鑰服務器上
               --recv-keys               從公鑰服務器上導入密鑰
               --search-keys             在公鑰服務器上搜尋密鑰
               --refresh-keys            從公鑰服務器更新所有的本地密鑰
               --import                  導入/合并密鑰
               --card-status             打印卡狀態
               --card-edit               更改卡上的數據
               --change-pin              更改卡的 PIN
               --update-trustdb          更新信任度數據庫
               --print-md 算法 [文件]    使用指定的散列算法打印報文散列值

          選項:

          -a, --armor                   輸出經 ASCII 封裝
          -r, --recipient 某甲          為收件者“某甲”加密
          -u, --local-user              使用這個用戶標識來簽字或解密
          -z N                          設定壓縮等級為 N (0 表示不壓縮)
               --textmode                使用標準的文本模式
          -o, --output                  指定輸出文件
          -v, --verbose                 詳細模式
          -n, --dry-run                 不做任何改變
          -i, --interactive             覆蓋前先詢問
               --openpgp                 行為嚴格遵循 OpenPGP 定義
               --pgp2                    生成與 PGP 2.x 兼容的報文

          (請參考在線說明以獲得所有命令和選項的完整清單)

          范例:

          -se -r Bob [文件名]          為 Bob 這個收件人簽字及加密
          --clearsign [文件名]         做出明文簽字
          --detach-sign [文件名]       做出分離式簽字
          --list-keys [某甲]           顯示密鑰
          --fingerprint [某甲]         顯示指紋

          請向 <gnupg-bugs@gnu.org> 報告程序缺陷。
          請向 <zuxyhere@eastday.com> 反映簡體中文翻譯的問題。

          posted on 2011-04-23 23:02 蜂鳥 閱讀(543) 評論(0)  編輯  收藏 所屬分類: Security

          公告

           掌握了XML就掌握了未來!

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿

          隨筆檔案(1)

          文章分類(17)

          文章檔案(17)

          搜索

          最新評論

          主站蜘蛛池模板: 宁陕县| 当雄县| 昌吉市| 大埔县| 荣成市| 德安县| 曲水县| 英超| 凤山县| 赞皇县| 年辖:市辖区| 贡嘎县| 高清| 宽城| 正蓝旗| 平罗县| 佳木斯市| 宁远县| 吉水县| 海安县| 根河市| 江达县| 文山县| 黄石市| 宝坻区| 泸州市| 新绛县| 龙里县| 翁牛特旗| 民丰县| 开平市| 渭源县| 宣化县| 平南县| 南木林县| 南汇区| 漠河县| 石首市| 洞口县| 定结县| 资阳市|