zoukankan      html  css  js  c++  java
  • OPENSSL

    输入openssl后面随意跟一个错误选项即可调出选项列表

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    [root@station51 ~]# openssl -
    openssl:Error: '-' is an invalid command.
    #标准命令
    Standard commands
    asn1parse ca(常用) ciphers cms
    crl crl2pkcs7 dgst dh
    dhparam dsa dsaparam ec
    ecparam enc(常用) engine errstr
    gendh gendsa(常用) genpkey genrsa
    nseq ocsp passwd pkcs12
    pkcs7 pkcs8 pkey pkeyparam
    pkeyutl prime rand req(常用)
    rsa rsautl s_client s_server
    s_time sess_id smime speed
    spkac ts verify version
    x509
    #消息摘要类命令
    Message Digest commands (see the `dgst' command for more details)
    md2 md4 md5 rmd160
    sha sha1
    #加解密命令
    Cipher commands (see the `enc' command for more details)
    aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
    aes-256-cbc aes-256-ecb base64 bf
    bf-cbc bf-cfb bf-ecb bf-ofb
    camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb
    camellia-256-cbc camellia-256-ecb cast cast-cbc
    cast5-cbc cast5-cfb cast5-ecb cast5-ofb
    des des-cbc des-cfb des-ecb
    des-ede des-ede-cbc des-ede-cfb des-ede-ofb
    des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
    des-ofb des3 desx idea
    idea-cbc idea-cfb idea-ecb idea-ofb
    rc2 rc2-40-cbc rc2-64-cbc rc2-cbc
    rc2-cfb rc2-ecb rc2-ofb rc4
    rc4-40 seed seed-cbc seed-cfb
    seed-ecb seed-ofb zlib

    对称加密:

    工具:openssl  enc,  gpg
    支持的算法:3des, aes, blowfish, towfish
    

    加密:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #以/etc/fstab文件举例
    [root@station51 ~]# cd /etc
    [root@station51 etc]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext
    enter des-ede3-cbc encryption password:
    Verifying - enter des-ede3-cbc encryption password:
    [root@station51 etc]# cat fstab.ciphertext
    U2FsdGVkX1/C0Rj1Zt+/RbCihTNFSlIW/JQ0fds493+tVA1E972inpvhi7/Oi50v
    9vjYfse07fyZgBf2hQALx57j+Bl/8gZoQofs8tTj2uMYqpAiePeDYzKAoXFG+XSf
    7bkDnlw3akbD6FGnbF0UblcD90Dz6+OSDQ01/xkIJZFfymwvW0YesKBWzK38dbp7
    IW3Hi8LRSs17ND4UHhLP24TQfbEDqure21Zuo3GqOnHa5IhKOtfm1vYePd5fHN/o
    miYvjpayk8tsLdBTO8pL/Z5Fi07DR9FywhxQ7pdpKQD3wiMm79pIqBm2ZktuQ2cw
    uK4BwSv0wqeAQiBgAWSAUSijcQ+mC4lh9SI8GwYxyyDRHH06J2mzqnyN7vXesaj6
    R3gqbwIK9wDQmXE+j/kahMlzP80WIPvPlJdpJMMPMriv7dW55b3AvZ4AJ+D1jmSF
    NxctZ+sng18h4nd/f2Ko3bHMdSnDEQzwmUfYKiIEygUlwg8c8HRySp7Q30gDyzy+
    k5Q5kjOgSRZEvvCutIxDTwPiZ0Ssapw1Y3UMAc7TdlOuzZxU/3JSU7R31r6jAc4w
    LQTLzflfEe1bGH5FLkWUg+9B8jZozHp/7EmnMgxi888r3z3JF+qO8K8XdkQSrN2p
    xbjkdYPCmwhun19XViHMeyFctItbqL8KGzOyGSBbhzq+uE4Qeruu+ogf8EQRzcyG
    utfE+Rzcvc71WKk2uinIcMG6DsUmKtmvd5gJtVBVhWq4s2JVJ8t/CbHS+8ZUs35a
    F7eNfUnSae1P2jN/Cad8FwtRClCGTIxGR+g9un76wbscFYR3OLO51w==
    [root@station51 etc]#

    说明:

    openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext
    openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab
    -e encrypt加密   <-->   -d decrypt解密
    -des3 使用des3加密算法
    -a 基于文本格式输出加密后文件内容
    -salt 在加密过程中添加一段随机数
    -in 对哪个文件加密
    -out 加密后的文件输出到哪里
    

    单向加密:

    工具:openssl dgst, md5sum, sha1sum, sha224sum, ...
    支持算法:md2、md4、md5、rmd160、sha、sha1
    

    加密:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@station51 etc]# openssl dgst -md5 /etc/fstab
    MD5(/etc/fstab)= ec48e5270ea9c035c72aa1519432af8c
    [root@station51 etc]# md5sum /etc/fstab
    ec48e5270ea9c035c72aa1519432af8c /etc/fstab
    ···································································
    [root@station51 etc]# openssl dgst -sha1 /etc/fstab
    SHA1(/etc/fstab)= 43133334e56e2a58245cd0a9e5174f6bebe325a1
    [root@station51 etc]# sha1sum /etc/fstab
    43133334e56e2a58245cd0a9e5174f6bebe325a1 /etc/fstab

    说明:

    dgst命令:
        ~]# openssl  dgst  -md5  /PATH/TO/SOMEFILE
    

    生成用户密码:

    工具:passwd, openssl  pass 大专栏  OPENSSLwd
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@station51 etc]# openssl passwd -1 -salt 123456 hello
    $1$123456$HQ125.2GLsY4GcwH9Mm1P/
    [root@station51 etc]# openssl passwd -1 -salt 123456 hello
    $1$123456$HQ125.2GLsY4GcwH9Mm1P/
    [root@station51 etc]# openssl passwd -1 -salt 123456 helloworld
    $1$123456$jBay/ZlxBUiEX3gCH5Pba.
    [root@station51 etc]# openssl passwd -1 -salt 12345678 hello
    $1$12345678$SWwdAXyU/e6YSg8pQlz4D/
    [root@station51 etc]#

    说明:

    语法格式:openssl  passwd  -1  -salt  SALT  文件
    salt自己指定,salt相同字符串相同,多次加密后生成密码相同
    salt自己指定,salt相同字符串不相同,加密后生成密码不同
    salt自己指定,salt不同字符串相同,多次加密后生成密码不同
    

    生成随机数:

    工具:openssl  rand 类型 字符串长度
    
    1
    2
    3
    4
    [root@station51 etc]# openssl rand -hex 4
    2f1e3fb3
    [root@station51 etc]# openssl rand -base64 4
    HLmG0w==

    说明:

    语法格式:openssl  rand 类型 字符串长度
    

    结合:生成用户密码+生成随机数

    1
    2
    [root@station51 etc]# openssl passwd -1 -salt $(openssl rand -hex 4) hello
    $1$874b43cc$yVoAMU.vR5/KJS5VXNDxG.

    公钥加密:

    加密解密:
        算法:RSA,ELGamal
        工具:openssl  rsautl, gpg
    数字签名:
        算法:RSA, DSA, ELGamal
        工具:
    密钥交换:
        算法:DH
    

    生成私钥:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    [root@station51 /]# openssl genrsa -out mykey.key 1024
    Generating RSA private key, 1024 bit long modulus
    ........++++++
    ........++++++
    ........++++++
    e is 65537 (0x10001)
    [root@station51 /]# cat mykey.key
    -----BEGIN RSA PRIVATE KEY-----
    MIICXQIBAAKBgQDB2PBAFQGSVrHFnWBn1iAbwdZRRSIK9usxh3Tq0czeWraJCcqT
    YpHL9+I6U//fMUaNb57t/JphnnAsJ29ToTPtrf4y5y9xsbZpo7vnSSeBw1cUVsd0
    KIxnk9KT1dFW5X3lwo3DkNmgLIWGOB2R/nl5LYC4bnvHI7l+JIsU/8OHiwIDAQAB
    AoGAbWU5SGDSbzx/vK8w7ciYfDGq+lhSeu+YEW6JW8+kl0OISdP9v6lb8EjnIdWv
    y8xqLX11qobotPiOA00J9Z8+xwElSrvCK24HKdK85uWjU7RZhbGO2IzmAQFjYhhk
    cy2PK2J+9DQxbJ6pBofL1/bX6k/QRfFt8avZi1IMo9jM/dkCQQD7goyrng5gRuYs
    FsR66zScQSY/o5+upE5msRFQ6DWNXdlZ/xxOF6Pp/b9WVnbse13I9quSMlsJUocr
    WMOyEcC/AkEAxU7cFVcECEMOa/MCBUTFbUNybudY4jaT2OldSCeoPBjCoc+4O1jf
    lSTEZ7s3Q78uNvu7/TbX+soIwhYHevFgNQJBAIY0IQ+qJQ2mh0dbVrgoLUh7Uwd+
    LcSok9UkApNjdL/cJhBpmhbpcmN3LNPLC2YgZejIBsDZ8c3Fpa6xjKrF4k0CQQCd
    VG6Fzab3d5DuXw2Daf0LTTbYXD0x1Fc8JYkuWgD6OrwoDtxW5l0SLgk2tcAxkyak
    zUJvfOXnomYtbSd1zzbpAkBmGmzPrntM5O11x1dwMYg4XzHQoxdNaNmuJaq/jBVq
    0vy+wvkDn88goH7Wq99kcrUYz1zo7UcL8GA6aOjK1Y9Y
    -----END RSA PRIVATE KEY-----

    说明:

    生成私钥: ~]# openssl  genrsa  -out  mykey.key  1024
    提出公钥: ~]#  openssl  rsa  -in  mykey.key  -pubout
    

    提取公钥:

    只输出公钥不输入私钥
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    [root@station51 /]# openssl rsa -in mykey.key -pubout
    writing RSA key
    -----BEGIN PUBLIC KEY-----
    MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDB2PBAFQGSVrHFnWBn1iAbwdZR
    RSIK9usxh3Tq0czeWraJCcqTYpHL9+I6U//fMUaNb57t/JphnnAsJ29ToTPtrf4y
    5y9xsbZpo7vnSSeBw1cUVsd0KIxnk9KT1dFW5X3lwo3DkNmgLIWGOB2R/nl5LYC4
    bnvHI7l+JIsU/8OHiwIDAQAB
    -----END PUBLIC KEY-----
    [root@station51 /]# cat mykey.key
    -----BEGIN RSA PRIVATE KEY-----
    MIICXQIBAAKBgQDB2PBAFQGSVrHFnWBn1iAbwdZRRSIK9usxh3Tq0czeWraJCcqT
    YpHL9+I6U//fMUaNb57t/JphnnAsJ29ToTPtrf4y5y9xsbZpo7vnSSeBw1cUVsd0
    KIxnk9KT1dFW5X3lwo3DkNmgLIWGOB2R/nl5LYC4bnvHI7l+JIsU/8OHiwIDAQAB
    AoGAbWU5SGDSbzx/vK8w7ciYfDGq+lhSeu+YEW6JW8+kl0OISdP9v6lb8EjnIdWv
    y8xqLX11qobotPiOA00J9Z8+xwElSrvCK24HKdK85uWjU7RZhbGO2IzmAQFjYhhk
    cy2PK2J+9DQxbJ6pBofL1/bX6k/QRfFt8avZi1IMo9jM/dkCQQD7goyrng5gRuYs
    FsR66zScQSY/o5+upE5msRFQ6DWNXdlZ/xxOF6Pp/b9WVnbse13I9quSMlsJUocr
    WMOyEcC/AkEAxU7cFVcECEMOa/MCBUTFbUNybudY4jaT2OldSCeoPBjCoc+4O1jf
    lSTEZ7s3Q78uNvu7/TbX+soIwhYHevFgNQJBAIY0IQ+qJQ2mh0dbVrgoLUh7Uwd+
    LcSok9UkApNjdL/cJhBpmhbpcmN3LNPLC2YgZejIBsDZ8c3Fpa6xjKrF4k0CQQCd
    VG6Fzab3d5DuXw2Daf0LTTbYXD0x1Fc8JYkuWgD6OrwoDtxW5l0SLgk2tcAxkyak
    zUJvfOXnomYtbSd1zzbpAkBmGmzPrntM5O11x1dwMYg4XzHQoxdNaNmuJaq/jBVq
    0vy+wvkDn88goH7Wq99kcrUYz1zo7UcL8GA6aOjK1Y9Y
    -----END RSA PRIVATE KEY-----

    为了避免私钥被其他用户窃取,建议加密时顺便修改文件权限:

    ~]#(umask 077;  openssl  genrsa  -out  test.key  1024)
    
    1
    2
    3
    4
    5
    6
    7
    8
    [root@station51 /]# (umask 077; openssl genrsa -out test.key 1024)
    Generating RSA private key, 1024 bit long modulus
    ...................++++++
    .................................................++++++
    e is 65537 (0x10001)
    [root@station51 /]# ll
    -rw-r--r-- 1 root root 887 May 29 16:07 mykey.key
    -rw------- 1 root root 887 May 29 16:13 test.key
  • 相关阅读:
    函数——返回值不止一个的情况(解一元二次方程)
    排序方法:去掉最高最低分求平均分 函数
    丢羊 递归
    网吧充值 函数+Swich+ArrayList版
    对战游戏自己简单版+大神版
    简单Struct+ArrayList选择买东西:购物车思路
    推箱子 复杂版(多个箱子)
    stuct+ArrayList的for用法
    Struct+ArrayList冒泡排序。例
    c# 穷举
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12227189.html
Copyright © 2011-2022 走看看