• GPG非对称加密


    我们需要两个账户进行操作,user1、use2;#这个实验需要我们在图形机上去做;

    1.创建加密文件

    [user1@logan ~]$ echo hello user2 > a.txt
    [user1@logan ~]$ ls
    a.txt  公共  模板  视频  图片  文档  下载  音乐  桌面

    2.我们要去user2中生成密钥对

    复制代码
    [user2@logan ~]$ gpg --gen-key
    gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    
    请选择您要使用的密钥种类:  default
       (1) RSA and RSA (default)
       (2) DSA and Elgamal
       (3) DSA (仅用于签名)
       (4) RSA (仅用于签名)
    您的选择? 
    RSA 密钥长度应在 1024 位与 4096 位之间。
    您想要用多大的密钥尺寸?(2048)1024
    您所要求的密钥尺寸是 1024 位
    请设定这把密钥的有效期限。
             0 = 密钥永不过期
          <n>  = 密钥在 n 天后过期
          <n>w = 密钥在 n 周后过期
          <n>m = 密钥在 n 月后过期
          <n>y = 密钥在 n 年后过期
    密钥的有效期限是?(0) 0
    密钥永远不会过期
    以上正确吗?(y/n)y
    
    You need a user ID to identify your key; the software constructs the user ID
    from the Real Name, Comment and Email Address in this form:
        "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
    
    真实姓名:user2
    电子邮件地址:user2@123.com
    注释:test user2
    您选定了这个用户标识:
        “user2 (test user2) <user2@123.com>”
    
    更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?   O
    复制代码

    复制代码
    我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
    鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
    我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
    鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
    gpg: /home/user2/.gnupg/trustdb.gpg:建立了信任度数据库
    gpg: 密钥 37EC7F7B 被标记为绝对信任
    公钥和私钥已经生成并经签名。
    
    gpg: 正在检查信任度数据库
    gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
    gpg: 深度:0 有效性:  1 已签名:  0 信任度:0-,0q,0n,0m,0f,1u
    pub   1024R/37EC7F7B 2019-07-26
    密钥指纹 = 77B9 AE56 4E9D 2DB4 E2BE  6834 F9A5 E748 37EC 7F7B
    uid                  user2 (test user2) <user2@123.com>
    sub   1024R/5B9E893A 2019-07-26
    复制代码

    3.查看一下我们的密钥对

    复制代码
    这是公钥
    [user2@logan ~]$ gpg --list-key /home/user2/.gnupg/pubring.gpg ------------------------------ pub 1024R/37EC7F7B 2019-07-26 uid user2 (test user2) <user2@123.com> sub 1024R/5B9E893A 2019-07-26
    复制代码
    复制代码
    这是私钥
    [user2@logan ~]$ gpg --list-secret-key /home/user2/.gnupg/secring.gpg ------------------------------ sec 1024R/37EC7F7B 2019-07-26 uid user2 (test user2) <user2@123.com> ssb 1024R/5B9E893A 2019-07-26
    复制代码

    4.我们需要把公钥从钥匙环中摘出来

    复制代码
    [user2@logan ~]$ gpg --export --armor > /tmp/user2.key
    [user2@logan ~]$ cat /tmp/user2.key 
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v2.0.22 (GNU/Linux)
    
    mI0EXTq0tQEEANIThJw/IH4HgrVsYj+rY1qQL0m/2eFr0cchZPASqhexCSpSEviw
    ciMH1DePWUN+p8EYcYrwXd8gn+lMd3ExOR5T1sVPCK5nbUJ1RPA9P9autWz7FgtV
    fkpWmvtJ7XlO6bvzGziPMMabEB4X2+KzpLsjud8kNXUlHF0kYrT/qqk9ABEBAAG0
    InVzZXIyICh0ZXN0IHVzZXIyKSA8dXNlcjJAMTIzLmNvbT6IuQQTAQIAIwUCXTq0
    tQIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEPml50g37H97/GwD/jOo
    MPm/ot6y3BWmrFnZA4X5jVry5/XBTSUBFHzSom0rqOWPJs1tmNjCfbCY54bnX3an
    bX6PloWuAzp+w0FDN1/BlbUnFkW7pqABJJev731DXzVairzyWw/BsgN7/hsS6PIT
    llAOeSINCBPqM1Nqh1wgBbnCnlVOuVNiCK5wj3ARuI0EXTq0tQEEAJZVzRbWU8DR
    2j7HDQVKSuyjcN1pUd3gyR/tlg107dpD1HcoB3KTUvrX4QvSMHx3YyDnNDSSJGrc
    Z8dpoJfxH5jTynY533Tu6+ri1sskQqQo7iEBDYloAqspTx1LsdKnhQirJbjfSuCD
    AI81TuLA1fusDZwex8wgyFqVkrmF6a4nABEBAAGInwQYAQIACQUCXTq0tQIbDAAK
    CRD5pedIN+x/e8O1BACcwpTEoE6Yt7EVTZuTEQJJdQX2DsQqYj7aO7ptGVAyZBlu
    lJ5v3okuodQGG5a/Kvd8J/sbEIWyt1u8QzxAwvLf9J6OkYBCQ2NeV/9/5fPPuZM7
    PtMTQJF6i/2QLb/pxTgoEpO3wgL0GjXqv6hBsguIyJ3uevKkaq9Y1wOINnvP1Q==
    =2Gbd
    -----END PGP PUBLIC KEY BLOCK-----
    复制代码

    5.user1 需要用user2的公钥加密自己的文件

    [user1@logan ~]$ cp /tmp/user2.key .
    [user1@logan ~]$ ls
    a.txt  user2.key  公共  模板  视频  图片  文档  下载  音乐  桌面

    6.将公钥挂到自己的钥匙环中

    复制代码
    [user1@logan ~]$ gpg --import user2.key 
    gpg: 已创建目录‘/home/user1/.gnupg’
    gpg: 新的配置文件‘/home/user1/.gnupg/gpg.conf’已建立
    gpg: 警告:在‘/home/user1/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
    gpg: 钥匙环‘/home/user1/.gnupg/secring.gpg’已建立
    gpg: 钥匙环‘/home/user1/.gnupg/pubring.gpg’已建立
    gpg: /home/user1/.gnupg/trustdb.gpg:建立了信任度数据库
    gpg: 密钥 37EC7F7B:公钥“user2 (test user2) <user2@123.com>”已导入
    gpg: 合计被处理的数量:1
    gpg:           已导入:1  (RSA: 1)
    复制代码

    7.对需要加密的文件进行加密

    复制代码
    [user1@logan ~]$ gpg --encrypt --armor -r user2 a.txt
    gpg: 5B9E893A:没有证据表明这把密钥真的属于它所声称的持有者
    
    pub  1024R/5B9E893A 2019-07-26 user2 (test user2) <user2@123.com>
     主钥指纹: 77B9 AE56 4E9D 2DB4 E2BE  6834 F9A5 E748 37EC 7F7B
     子钥指纹: 6F18 58F2 B6BC 037A A14D  69E6 3E94 8284 5B9E 893A
    
    这把密钥并不一定属于用户标识声称的那个人。如果您真的知道自
    己在做什么,您可以在下一个问题回答 yes。
    
    无论如何还是使用这把密钥吗?(y/N)y
    [user1@logan ~]$ ls
    a.txt  a.txt.asc  user2.key  公共  模板  视频  图片  文档  下载  音乐  桌面    生成了加密文件a.txt.asc
    复制代码

    8.将加密后的文件交给user2

    [user1@logan ~]$ mv a.txt.asc /tmp/
    [user1@logan ~]$ ls /tmp/
    a.txt.asc  user2.key

    9.user2解密,这里我们需要输入私钥密码;

    复制代码
    [user2@logan ~]$ ls
    a.txt.asc
    [user2@logan ~]$ gpg a.txt.asc 
    
    您需要输入密码,才能解开这个用户的私钥:“user2 (test user2) <user2@123.com>”
    1024 位的 RSA 密钥,钥匙号 5B9E893A,建立于 2019-07-26 (主钥匙号 37EC7F7B)
    
    gpg: 由 1024 位的 RSA 密钥加密,钥匙号为 5B9E893A、生成于 2019-07-26
          “user2 (test user2) <user2@123.com>”
    [user2@logan ~]$ ls
    a.txt  a.txt.asc     我们的文件解密完成
    复制代码

    9.验证

    [user2@logan ~]$ cat a.txt
    hello user2

    实验完成;

  • 相关阅读:
    主效应|处理误差 |组间误差|处理效应|随机误差|组内误差|误差|效应分析|方差齐性检验|SSE|SSA|SST|MSE|MSA|F检验|关系系数|完全随机化设计|区组设计|析因分析
    第二类错误|检验统计量|左偏|右偏|P值
    估计量|估计值|置信度|置信水平|非正态的小样本|t分布|大样本抽样分布|总体方差|
    参数|统计量|抽样分布|估计标准误差|标准误差|标准误|标准差|二项分布|泊松分布|中心极限定理|样本方差|
    ruby 分析日志,提取特定记录
    find 找出大文件
    momentjs 求小时差异
    linux下对date和timestamp的互转
    golang protobuf SetExtension
    对文本中的某两列求和,请统计重复出现次数
  • 原文地址:https://www.cnblogs.com/MR-ws/p/11251601.html
Copyright © 2020-2023  润新知