php openssl做什么,php_openssl.dll在php中的作用是什么

php_openssl.dll在php中的作用是什么

发布时间:2020-12-30 16:13:57

来源:亿速云

阅读:89

作者:Leah

php_openssl.dll在php中的作用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一.openssl简介数据加密是信息信息传输中的一个重要组成部分.任何信息都以明文方式传输,确实是个很不安全的做法.所以,

需要对数据进行加密.将明文数据转换为密文数据,再进行传输.

OpenSSL是一套用于SSL/TLS协议的加密工具,其作用有:1.生成私有密钥.

2.生成证书,即数字签名证书,它包含一个公有密钥,可以用来单向的加密和解密数据.即,使用公钥加密的数据,只能使用

私有密钥解密.使用私钥加密的数据,可以使用公钥来解密.

3.计算信息摘要.

4.SSL/TLS客户端和服务器端测试.

5.处理S/MIME标记和邮件的加密.

二.加密技术简介.加密,即将明文数据转换为密文数据的过程.以起到对明文保密的作用.

加密算法: 数据加密过程所采用的一种运算算法.用于将明文转换为密文.

密钥: 加密算法通过与密钥进行某种运算,将明文数据进行加密,生成加密数据.解密时,加密算法通过密钥,

将加密数据再转换为明文数据.

现今的加密技术,加密算法是公开的,即所有人都知道加密所采用的运算方式.但只有使用密钥才能进行

对密文的解密.所以,密钥的保护,是数据安全的核心.

三.openssl工具使用简介1.私有密钥生成方法

生成私有密钥,可以使用不同的数字签名算法.下面分别介绍;

#采用DSA算法

$ openssl dsaparam -noout -out dsakey0.pem -genkey 1024

#采用RSA算法

$ openssl genrsa -out rsakey0.pem 1024

#采用RSA算法,并使用密码保护.在生成私钥时,需要输入一个密码,用于保护私钥.

#在使用这个私钥进行加/解密操作时,也需要输入这个密码.

$ openssl genrsa -des3 -out rsakey1.pem 10242.公用密钥的生成方法

根据私钥来生成公钥

#生成dsa算法的公钥

$ openssl dsa -in dsakey0.pem -pubout -out dsakey0-pub.pem

#生成rsa算法的公钥

$ openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub.pem3.自签名证书的生成方法

#产生DSA算法的证书

$ openssl req -x509 -key dsakey0.pem -days 365 -out mycert-dsa.pem -new

#产生RSA算法的证书

$ openssl req -x509 -key rsakey0.pem -days 365 -out mycert-rsa.pem -new

4.使用证书进行邮件加密我们的明文信件内容:

$ cat test.txt

111111

222222

333333

444444

aaaaaa

使用证书对明文信件进行加密,输出到etest.txt文件:$ openssl smime   -encrypt -in test.txt -out etest.txt mycert-rsa.pem查看加密后的密文内容:

$ cat etest.txt

MIME-Version: 1.0

Content-Disposition: attachment; filename="smime.p7m"

Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"

Content-Transfer-Encoding: base64

MIIBYAYJKoZIhvcNAQcDoIIBUTCCAU0CAQAxgewwgekCAQAwUjBFMQswCQYDVQQG

EwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lk

Z2l0cyBQdHkgTHRkAgkAr71mh5NRX/UwDQYJKoZIhvcNAQEBBQAEgYCbrA1WBwQK

Zj7TcNtrxiDzqMBc/Lu063SLKvBK6mQMqT+npFOOFtzIKdFVkldH0YyQhMZDSCyq

YUtGwOaDw6Jn0AHRt64UwPOKoaeL9RVqp9vgtiFC/uXis5UeyZCWS1z7Jsih8Aa+

Da/DQN0sOCX85OdK/TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIhvcN

AwIwDgICAKAECNxsgiJ2s+1ugDC6JknPL+rDYBCddcyPH+bMYjqrUP0hE/GQ5WSj

sv8CDkOUdvY5XG440yiAL3Z3ysI=使用私钥进行解密,输出到dtest.txt文件:

$ openssl smime  -decrypt -in etest.txt -inkey rsakey0.pem  -out dtest.txt查看解密后的信件内容,与原明文信件内容完全一致.

$ cat dtest.txt

111111

222222

333333

444444

aaaaaa

5.简单的文件加密明文文件内容:

$ cat test.txt

1

22

333

4444

55555

Hello加密明文文件,输出为test.enc文件,输入”123123”作为加密密码:

$ openssl enc -aes-256-cbc -salt -in test.txt -out test.enc

enter aes-256-cbc encryption password:

Verifying - enter aes-256-cbc encryption password:对密文进行解密,输入”123123”作为解密密码:

$ openssl enc -d -aes-256-cbc -in test.enc

enter aes-256-cbc decryption password:

1

22

333

4444

55555

Hello

6.简单的字符串加密采用base64方式进行加密:

$ echo "encode me" | openssl enc -base64

ZW5jb2RlIG1lCg==解密时,需要知道加密算法,才可解密:

$ echo "ZW5jb2RlIG1lCg==" | openssl enc -base64 -d

encode me

7.SSL客户端和服务器的测试使用私钥和证书启动SSL服务器,"-www”的作用是,当客户端连接服务器时,发送一个状态信息网页到客户端.

openssl s_server -key mykey.pem -cert mycert.pem -www连接SSL服务器到,客户端会获得服务器的证书:

openssl s_client -connect localhost:4433

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值