openssl加密_openssl加密解密文件 - CSDN
精华内容
参与话题
  • 使用openssl库进行DES加密

    万次阅读 2015-07-29 15:19:23
    openssl库实现了大多数的加密算法,如AES,DES,RSAdend

    openssl库实现了大多数的加密算法,如AES,DES,RSA等等。

    首先安装openssl库,命令如下:

    sudo apt-get install libssl-dev

    在代码中,引用对应的头文件

    #include <openssl/des.h>

    DES加密的主要函数如下:

    typedef unsigned char DES_cblock[8];
    
    //生成一个随机的key,必须使用下面的set_key函数转换为schedule之后才能使用
    void DES_random_key(DES_cblock *ret);
    
    //设置key
    //这两个函数的主要区别在于是否检测key的奇偶校检位
    //checked会对奇偶校检位进行检查,如果校检位错误,返回-1,如果key强度比较弱,返回-2;
    //unchecked则不会检查
    int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule);
    void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule);
    
    //使用ECB模式进行加密
    //每次仅能加密一个DES_cblock,即8个字节
    //enc可以是DES_ENCRYPT或者DES_DECRYPT
    void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, DES_key_schedule *ks, int enc);
    
    //使用CBC模式进行加密
    //length指明文或者密文长度
    //ivec是初始化向量IV
    //如果length不是8的倍数,会使用00填充
    void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, long length, DES_key_schedule, DES_cblock *ivec, int enc);

    ECB,电子密码本模式,就是将数据按照8个字节一段进行DES加密或解密得到一段段的8个字节的密文或者明文,最后一段不足8个字节(一般补0或者F),按照需求补足8个字节进行计算(并行计算),之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响。


    CBC,密文分组链接方式,它的实现机制使加密的各段数据之间有了联系。其实现的机理如下:
    1. 首先将数据按照8个字节一组进行分组得到D1D2......Dn(若数据不是8的整数倍,用指定的PADDING数据补位)
    2. 第一组数据D1与初始化向量IV异或后的结果进行DES加密得到第一组密文C1(初始化向量I为全零)
    3. 第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2
    4. 之后的数据以此类推,得到Cn
    5. 按顺序连为C1C2C3......Cn即为加密结果。


    代码示例:

    ECB模式

    #include <stdio.h>
    #include <openssl/des.h>
    
    int main(int argc,char **argv)
    {
        DES_cblock key;
        //随机密钥
        DES_random_key(&key);
    
        DES_key_schedule schedule;
        //转换成schedule
        DES_set_key_checked(&key, &schedule); 
    
        const_DES_cblock input = "hehehe";
        DES_cblock output;
    
        printf("cleartext: %s\n", input);
    
        //加密
        DES_ecb_encrypt(&input, &output, &schedule, DES_ENCRYPT);
        printf("Encrypted!\n");
    
        printf("ciphertext: ");
        int i;
        for (i = 0; i < sizeof(input); i++)
             printf("%02x", output[i]);
        printf("\n");
    
        //解密
        DES_ecb_encrypt(&output, &input, &schedule, DES_DECRYPT);
        printf("Decrypted!\n");
        printf("cleartext:%s\n", input);
    
        return 0;
    } 


    CBC模式:

    #include <openssl/des.h>
    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char** argv)
    {
          unsigned char *keystring = "this is my key";
          DES_cblock key;
          DES_key_schedule key_schedule;
    
          //生成一个 key
          DES_string_to_key(keystring, &key);
          if (DES_set_key_checked(&key, &key_schedule) != 0) {
              printf("convert to key_schedule failed.\n");
              return -1;
          }
    
          //需要加密的字符串
          unsigned char input[] = "this is a text being encrypted by openssl";
          size_t len = (sizeof(input)+7)/8 * 8;  
          unsigned char *output = malloc(len+1);
          //IV
          DES_cblock ivec;
    
          //IV设置为0x0000000000000000
          memset((char*)&ivec, 0, sizeof(ivec));
         
          //加密
          DES_ncbc_encrypt(input, output, sizeof(input), &key_schedule, &ivec, DES_ENCRYPT);
    
          //输出加密以后的内容
          for (int i = 0; i < len; ++i)
             printf("%02x", output[i]);
          printf("\n");
    
          memset((char*)&ivec, 0, sizeof(ivec));
    
          //解密
          DES_ncbc_encrypt(output, input, len, &key_schedule, &ivec, 0);
          
          printf("%s\n", input);
    
          free(output);
          return EXIT_SUCCESS;
    }


    注意编译的时候要加上crypto库,命令如下:

    gcc main.c -lcrypto


    使用DES_string_to_key()时,函数内部会对传入的string进行处理,设置奇偶校检位等,可能会造成同样的密钥,加密的结果与其他DES实现方式不同。解决这个问题,可以使用下面的代码:

    DES_cblock key;
    memcpy(key, "password", 8);
    DES_set_key_unchecked(&key, &schedule);


    展开全文
  • 我们在平时的 Linux 运维管理的时候,经常会进行各种数据备份任务。将数据导出然后打包。... 使用 openssl 加密一个文件 (data.zip 为原始文件,back.zip 为加密之后的文件)# openssl enc -e -...
    我们在平时的 Linux 运维管理的时候,经常会进行各种数据备份任务。将数据导出然后打包。通常在安全性要求比较高的环境下,我们可以借助 OpenSSL 工具对打包后的数据进行加密,这样能进一步的保障数据的安全性。
    OpenSSL 使用密码方式加密或解密文件

    1. 使用 openssl 加密一个文件 (data.zip 为原始文件,back.zip 为加密之后的文件)

    # openssl enc -e -aes256 -in data.zip -out back.zip

    解释: enc 表示对文件进行对称加密或解密, -e 表示对一个文件进行加密操作,-aes256 表示使用 aes256 算法进行加密,-in 表示需要被加密的文件,-out 表示加密之后生成的新文件。加密过程中会要求输入一个加密密码,重复输入两次即可完成对文件的加密

    2. 使用 openssl 解密一个文件 (back.zip 为加密的文件,data.zip 为解密之后的文件)

    # openssl enc -d -aes256 -in back.zip -out data.zip

    解释: enc 表示对文件进行对称加密或解密, -d 表示对文件进行解密操作,-aes256 表示使用 aes256 算法进行解密,-in 表示需要被解密的文件,-out 表示解密之后生成的新文件,解密一个文件的时候会要求输入加密文件时设置的密码才能进行解密。

    OpenSSL 使用密钥方式加密或解密文件

    1. 首先需要使用 openssl 生成一个 2048 位的密钥 rsa.key 文件 (rsa.key 密钥文件中包含了私钥和公钥)

    # openssl genrsa -out rsa.key 2048

    2. 然后从 rsa.key 密钥文件中提取出公钥 pub.key

    # openssl rsa -in rsa.key -pubout -out pub.key

    3. 使用 pub.key 公钥加密一个文件 (data.zip 为原始文件,back.zip 为加密之后的文件)

    # openssl rsautl -encrypt -inkey pub.key -pubin -in data.zip -out back.zip

    4. 使用 rsa.key 私钥解密一个文件 (back.zip 为加密的文件,data.zip 为解密之后的文件)

    # openssl rsautl -decrypt -inkey rsa.key -in back.zip -out data.zip

    最后我们使用 OpenSSL 工具,对所有备份的数据文件进行加密存储,就能保证业务系统数据进行保护,防止泄漏。我们也可以使用其他的加密工具比如 GPG,VeraCrypt,trueCrypt 这些工具来对数据进行加密,但相比而言,使用 OpenSSL 更加方便,因为几乎每种 Linux 发行版都预装了 OpenSSL 软件包。

    展开全文
  • 自己写的openssl加密通信的代码模板
  • openssl加密解密

    千次阅读 2015-09-24 09:13:42
    可用性:加密能够解密。 OSI:x.800定义了安全攻击机制   现代互联网安全服务的基础安全框架叫做PKI机制:Public Key Infrastructure PKI: 签证机构:CA 注册机构:RA

    SSL:Secure Socket Layer

    特点:

    保密性:数据保密性,隐私性

    完整性:数据完整性,系统完整性

    可用性:加密能够解密。

    OSI:x.800定义了安全攻击机制

     

    现代互联网安全服务的基础安全框架叫做PKI机制:Public Key Infrastructure

    PKI:

    签证机构:CA

    注册机构:RA

    证书吊销列表:CRL

    证书存取库:

     

    DSS:Digital Siganature Standard

     

    加密协议种类

    对称加密:加密解密用同一个密钥:3des,aes

    公钥加密:密钥成对出现:公钥-私钥,加密速度慢,常用于数字签名和密钥交换。

                RSA,DSA(DSS)

    单向加密:主要用于提取数据指纹或特征码。

                MD5,sha1

    密钥交换:DH:Deffie-Hellman算法

    SSL是一种库,是TCP/IP协议层中的半层,基于TCP实现的,必须要有虚拟电路支持。

    请求服务器中的数字证书:其中是使用者的公钥

    CA:证书签证机构

    数字证书格式:

    版本号version:

    序列号serial number:CA用于唯一标识此证书

    签名算法标识:

    发行者名称:CA自己名称

    有效期:起止日期

    证书主体名称:证书拥有者的名称:

    证书主体公钥信息:证书拥有者自己的公钥

    发行商的唯一标识:

    证书主体的唯一标识:

    扩展信息:

    签名:CA对此证书的数字签名

    证书的用途:

    用户证书:用户之间通信用的

    主机证书 (httpd):服务器的进程间通信用的

    Open SSL 的组成部分:

    libcrypto:加密解密库文件

    libssl:ssl协议实现

    openssl:多用途命令行工具,每种功能都使用专用的子命令来实现

    openssl:子命令分类:

    标准命令

    消息摘要命令

    加密,解密相关命令

    加密 openssl enc -e加密 -a以文本模式输出 -salt:加些随机数进来 -in加密哪个文件 -out放在哪 -des3密码

    解密 openssl enc –d

    image 加密前

     image 加密中

    image 加密后

     

    单向加密 openssl dgst –CIPHER file

    image

     

    生成用户密码:openssl passwd –1 –salt 8bit 随机数

    image 

    不知为啥生出了一堆

     

    生成随机数:openssl rand –hex|-base64 NUM

    image

    image

     

    公钥加密

    数字签名:RSA/DSA

    密钥交换DH:

    操作过程:私钥能提取出公钥

    openssl genrsa –out 文件 位数

    (umask 077;openssl genrsa –out 文件 位数)在括号中运行的表示在子shell中运行

    image

    私钥中提取公钥

    openssl rsa –in 私钥文件 –pubout

    image

     

    公钥加密为了完成密钥交换

    私钥机密为了完成身份验证

     

    随机数生成器:

    random,urandom

    熵池:保存硬件中断产生的随机数

    /dev/random:从熵池中取随机数,熵池里的随机数耗尽,取随机数的进程会被阻塞

    /dev/urandom:从熵池中取随机数,熵池里的随机数耗尽,会用伪随机数生成器替代,不安全。

     

    构建私有CA

    1、生成私钥;

    2、生成自签署证书;

    image

    查看CA_Default

    dir:定义CA工作目录

    certs:$dir引用dir的值:为客户端发放的证书存取库

    crl_dir:吊销文件

    database:数据库

     

    new_certs_dir:刚生成的证书

    certificate:CA自己的证书

    serial:会不断加一

    crlnumber:吊销编号

    private_key:存放私钥的

     

    步骤:

    自己生成

    1、在CA工作目录里生成自己的私钥, 私钥的位置是private_key

    2、生成自签证书:

         openssl req –new –x509 –key /etc/pki/CA/private/cakey.pem –out /etc/pki/CA/cacert.pem –days

            -new 生成新证书的签署请求

            -key私钥文件路径,提取公钥用的

            -days N:证书有效时长,单位是天

            -out输出文件保存位置:

            -x509:直接输出自签署的证书文件,通常只有构建CA才这么用

    3、提供辅助文件

            touch /etc/pki/CA/index.txt

            echo 01> serial

     

    1

    image

    2、3

    image

     

    给节点发证书:

    1、节点申请

    2、CA签发证书:openssl ca –in file –out file –days N

    3、把签署好的证书发还给请求者

    建立文件夹

    image

    生成证书

    image

    发送请求

    image

    之后就过不去了,不知为什么,以前java培训机构排名好像讲过。

     

     

    OpenSSH:

    CS架构协议:

       Server需要sshd:  /stc/ssh/sshd_config

       Client需要ssh,xshell,putty  /stc/ssh/ssh_config

       scp:安全跨主机复制工具,基于ssh实现

       sftp

    sshsecure shell,用来取代telnet(23/tcp)

     

    telnet是有xinetd这个超级守护进程来管理的:

    打开telnet,他是明文的,容易被盗

    chkconfig telnet on

    image

    service xinetd restart

    ss –tnl 查找23tcp端口

    iptables -F清空防火墙规则

    ssh protocol

    v1不安全 v2安全

    两种方式认证:

          基于口令认证:

          基于密钥认证:基于DH

          在客户端生成一对密钥,私钥自己留着,公钥通过私密方式保存到远程服务器某用户的家目录专用于ssh通信的文件中

    命令行用法:

    ssh [选项] –l user host,不指定用户名就以自己当前用户名代入

    ssh [选项] user@host

    也可以通过ssh一次执行一条命令然后返回

    image

     

    私钥登录:

    1、创建私钥

    ssh [选项] [user]@[local] -p指明端口号

    image

    2、复制到服务器上

    image

     

     

    scp:远程复制文件:

    push:scp –r(目录递归) –p(权限)自己的文件 user@host:/path -P指明端口号

    pull:scp user@host:/path 位置

     

    服务器端配置sshd:/etc/ssh/sshd_config

    1、port默认是22,尽量不使用默认,大家都爱用22022

    2、protocol 2,1不安全

    3、限制可登录用户:禁用root登入,

                    PermitRootLogin,默认是yes

                    AllowUsers user1 user2,白名单

                    AllowGroups grp1

                    DenyUsers user1黑名单

    4、仅监听需要监听的ip地址:

                    ListenAddress

    5、强密码策略:

                    建议随机数

    6、禁止使用空密码登入:

    7、限制登入频度:默认是6次


    展开全文
  • openssl用法详解

    千次阅读 2018-06-02 10:40:05
    OpenSSL 是一个开源项目,其组成主要包括一下三个组件:openssl:多用途的命令行工具libcrypto:加密算法库libssl:加密模块应用库,实现了ssl及tlsopenssl可以实现:秘钥证书管理、对称加密和非对称加密 。...

    OpenSSL 是一个开源项目,其组成主要包括一下三个组件:

    • openssl:多用途的命令行工具

    • libcrypto:加密算法库

    • libssl:加密模块应用库,实现了ssl及tls

    openssl可以实现:秘钥证书管理、对称加密和非对称加密 。

    1、对称加密

    对称加密需要使用的标准命令为 enc ,用法如下:

    openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64]
           [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md]
           [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

    常用选项有:

    -in filename:指定要加密的文件存放路径

    -out filename:指定加密后的文件存放路径

    -salt:自动插入一个随机数作为文件内容加密,默认选项

    -e:可以指明一种加密算法,若不指的话将使用默认加密算法

    -d:解密,解密时也可以指定算法,若不指定则使用默认算法,但一定要与加密时的算法一致

    -a/-base64:使用-base64位编码格式

    示例:
    加密:]# openssl enc -e -des3 -a -salt -in fstab -out jiami
    解密:]# openssl enc -d -des3 -a -salt -in fstab -out jiami

    2、单向加密

    单向加密需要使用的标准命令为 dgst ,用法如下:

    openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary]
           [-out filename] [-sign filename] [-keyform arg] [-passin arg] [-verify filename] [-prverify
           filename] [-signature filename] [-hmac key] [file...]

    常用选项有:

    [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] :指定一种加密算法

    -out filename:将加密的内容保存到指定文件中

    示例如下:

    单向加密除了 openssl dgst 工具还有: md5sum,sha1sum,sha224sum,sha256sum ,sha384sum,sha512sum

    示例如下:

    3、生成密码

    生成密码需要使用的标准命令为 passwd ,用法如下:

    openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}

    常用选项有:

    -1:使用md5加密算法

    -salt string:加入随机数,最多8位随机数

    -in file:对输入的文件内容进行加密

    -stdion:对标准输入的内容进行加密

    示例如下:

    4、生成随机数

    生成随机数需要用到的标准命令为 rand ,用法如下:

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

    常用选项有:

    -out file:将生成的随机数保存至指定文件中

    -base64:使用base64 编码格式

    -hex:使用16进制编码格式

    示例如下:

    5、生成秘钥对

    首先需要先使用 genrsa 标准命令生成私钥,然后再使用 rsa 标准命令从私钥中提取公钥。

    genrsa 的用法如下:

    openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]

    常用选项有:

    -out filename:将生成的私钥保存至指定的文件中

    -des|-des3|-idea:不同的加密算法

    numbits:指定生成私钥的大小,默认是2048

    一般情况下秘钥文件的权限一定要控制好,只能自己读写,因此可以使用 umask 命令设置生成的私钥权限,示例如下:

    ras 的用法如下:

    openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg]
           [-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]

    常用选项:

    -in filename:指明私钥文件

    -out filename:指明将提取出的公钥保存至指定文件中 

    -pubout:根据私钥提取出公钥 

    示例如下:

    6、创建CA和申请证书

    使用openssl工具创建CA证书和申请证书时,需要先查看配置文件,因为配置文件中对证书的名称和存放位置等相关信息都做了定义,具体可参考 /etc/pki/tls/openssl.cnf 文件。


    (1)、创建自签证书

    第一步:创建为 CA 提供所需的目录及文件

    第二步:指明证书的开始编号

    ]# echo 01 >> serial 

    第三步:生成私钥,私钥的文件名与存放位置要与配置文件中的设置相匹配;

    第四步:生成自签证书,自签证书的存放位置也要与配置文件中的设置相匹配,生成证书时需要填写相应的信息;

    命令中用到的选项解释:

    -new:表示生成一个新证书签署请求

    -x509:专用于CA生成自签证书,如果不是自签证书则不需要此项

    -key:生成请求时用到的私钥文件

    -out:证书的保存路径

    -days:证书的有效期限,单位是day(天),默认是365天

    (2)颁发证书

    在需要使用证书的主机上生成证书请求,以 httpd 服务为例,步骤如下:

    第一步:在需要使用证书的主机上生成私钥,这个私钥文件的位置可以随意定

    第二步:生成证书签署请求

    第三步:将请求通过可靠方式发送给 CA 主机


    第四步:CA 服务器拿到证书签署请求文件后颁发证书,这一步是在 CA 服务器上做的

    查看证书信息的命令为:

    (3)吊销证书

    吊销证书的步骤也是在CA服务器上执行的,以刚才新建的 httpd.crt 证书为例,吊销步骤如下:

    第一步:在客户机上获取要吊销证书的 serial 和 subject 信息 

    第二步:根据客户机提交的 serial 和 subject 信息,对比其余本机数据库 index.txt 中存储的是否一致 

    第三步:执行吊销操作

    第四步:生成吊销证书的吊销编号 (第一次吊销证书时执行)

    ]# echo 01 > /etc/pki/CA/crlnumber

    第五步:更新证书吊销列表

    ]# openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl

    查看 crl 文件命令:

    ]# openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text

     

    原文  http://www.178linux.com/48764

    展开全文
  • openssl加密

    2019-06-13 07:24:06
    1、使用aes-128-cbc算法加密文件:openssl enc -aes-128-cbc -in install.log -out enc.log(注:这里install.log是你想要加密的文件,enc.log是加密后的文件,回车后系统会提示你输入密码。)2、解密刚才加密的文件...
  • openssl 加密解密

    千次阅读 2016-10-20 17:09:20
    没办法,搞吧接下啦我就开始看各种文档,这玩意是什么东西,去大牛博客看,好吧是个很不错的加密工具,前几天看锤子发布会,老罗把发布会门票挣得100多万捐给两个开源机构,其中一个就是openssl,这玩意这么屌我是搞...
  • openssl加密原理

    千次阅读 2013-01-13 08:22:22
    SSL概述 SSL是SecureSocketLayer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术。...
  • php如何openssl_encrypt加密解密

    万次阅读 多人点赞 2018-10-25 18:28:36
    最近在对接客户的CRM系统,获取令牌时,要用DES方式加密解密,由于之前没有搞错这种加密方式,经过请教了“百度”和“谷歌”两个老师后,结合了多篇文档内容后,终于实现了。 一、DES介绍 DES 是对称性加密里面常见...
  • 使用Python的OpenSSL库来进行RSA加密

    万次阅读 2012-04-30 21:08:44
    使用Python的OpenSSL库(如pyopenssl)可以很便捷地对数据进行RSA的加密,方法如下: 1 使用openssl命令生成私钥  openssl genrsa -out private.pem -f4 1024 #生成私钥,指数值为10001 2 使用Python进行加密...
  • openwrt上使用openssl对文件加密

    千次阅读 2015-02-05 16:38:03
    路由器采集到的一些数据文件需要进行加密然后再传回服务侧,对整个文件加密,打算用openssl进行加密。 openwrt的menuconfig中有相应库的支持,但是对命令行的支持被去掉了,估计是从节约空间的角度考虑吧,通过修改...
  • 网上找了下openssl 加解密 aes-128-cbc相关命令, 发现都比较含糊, 这里是摸索出的一个aes-12b-cbc加...使用openssl加密. -p 表示打印出加密用的salt, key, iv. salt就是所谓的加盐, 防止同样的内容产生同样的加密数...
  • Shell中使用openssl进行字符串加解密

    千次阅读 2018-05-12 21:15:20
    在Linux/Unix中使用openssl进行字符串加解密,AES 256 CBC模式。#!/bin/bash source_str="RealJt" key=$(openssl rand -base64 32 | md5) iv=$(openssl rand -base64 32 | md5) encrypt_str=$(echo &...
  • --建立文件test.txt, 特意写入中英文 ...--开始加密, 使用aes-128-cbc算法, 也可以使用其他算法, 通过查看openssl的帮助可获知 # openssl aes-128-cbc -salt -in test.txt -out test.txt.aes enter
  • openssl_encrypt decrypt实现加密解密

    千次阅读 2019-06-14 15:15:23
    * 使用openssl_encrypt加密 * $data = '1234567887654321';//加密明文 * $method = 'DES-ECB';//加密方法 * $passwd = '12344321';//加密密钥 * $options = 0;//数据格式选项(可选) * $iv = '';//加密初始化...
  • OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。OpenSSL漏洞不仅影响以https开头的网站,黑客还可利用此漏洞直接对个人电脑发起“心脏出血”(Heartb...
  • cipher加密套件(openssl

    千次阅读 2015-09-07 12:05:42
    一个加密套件指明了SSL握手阶段和通信阶段所应该采用的各种算法。这些算法包括:认证算法、密钥交换算法、对称算法和摘要算法等。 在握手初始化的时候,双方都会导入各自所认可的多种加密套件。在握手阶段,由...
  • php使用openssl来实现非对称加密

    万次阅读 2016-09-21 08:33:45
    使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。1.安装openssl和php的openssl扩展2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护 ...
  • openssl_sign和openssl_verify实现支付接口

    千次阅读 2018-07-16 10:19:40
    开始你用你的公钥加密订单信息,发送给银行,银行用私钥解密,如果证明是你发的信息,就用你的公钥加密返回信息传给你,你再用私钥解密。RSA/DSA/SHA/MD5 非对称加密的算法有很多,比较著名的有RSA/DSA ,不同的是RSA...
  • openssl命令行进行RSA加密解密

    千次阅读 2013-12-06 10:17:43
    openssl是一个功能强大的...我们即可以利用它提供的命令台工具生成密钥、证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密。 RSA是一个非对称加密算法。简单说来,非对称加密算法就是
1 2 3 4 5 ... 20
收藏数 43,384
精华内容 17,353
关键字:

openssl加密