本篇文章是对php中php_openssl.dll的作用进行了详细的分析介绍,需要的朋友参考下

一.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

Z2l0cyBQdHkgTHRkAgkAr71mh4NRX/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

php openssl做什么,php php_openssl.dll文件有什么用?相关推荐

  1. 用Visual C#做DLL文件

    作为软件设计和开发人员大都有过使用DLL(动态连接库)的经历,DLL的产生使得我们的应用程序在可维护性.代码的重复使用等方面都有了很大的提高.以前用的DLL一般都是用Visual C++.Delphi ...

  2. 用Visual C#做DLL文件http://www.77169.org/classical/HTML/38184.html

    作为软件设计和开发人员大都有过使用DLL(动态连接库)的经历,DLL的产生使得我们的应用程序在可维护性.代码的重复使用等方面都有了很大的提高.以前用的DLL一般都是用Visual C++.Delphi ...

  3. php openssl做什么,php开启openssl的方法

    php开启openssl的方法 关注:294  答案:2  mip版 解决时间 2021-02-02 21:13 提问者笑低了眉眼 2021-02-02 05:23 我是一个小白,对于php完全不懂, ...

  4. php 动态引用dll文件路径,win平台环境变量与dll动态链接库搜索路径小结

    今日需要做一个在cmd命令窗口下使用php.exe执行的php小程序,用于循环获取某API提供的json数据并进行分析后实时发送短信提醒. 用惯了linux下的直接命令窗口输入curl.php等命令而 ...

  5. php 打开动态链接,php调用com组件-dll文件(动态链接库)

    什么是COM? COM(Component Object Model)组件对象模型,是一种跨应用和语言共享二进制代码的方法.是位于DCE RPC上部的对象指向层(关联服务)定义公共的调用协定以允许用不 ...

  6. linux 生成dll文件,Linux和Windows平台 动态库.so和.dll文件的生成

    Linux动态库的生成 1. 纯cpp文件打包动态库 将所有cpp文件和所需要的头文件放在同一文件夹,然后执行下面命令 gcc -shared - fpic *.c -o xxx.so: g++ -s ...

  7. java jni调用dll文件_Java通过jni调用动态链接库

    (1)JNI简介 JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++).从Java1.1开始,JNI标准成为java ...

  8. lib和dll文件的区别和联系

    什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37)      (1)lib是编译时需要的,dll是运行时需要的.  如果要完成源代码的编译,有lib就够了.  如果 ...

  9. python调用自定义函数返回值的类型_生成dll文件以及python对DLL中函数的调用(参数类型以及返回值)...

    工具:VS2010    python2.7 (若使用的python是64位的,生成的dll也要使用x64) 系统:win7pro 64bit 首先,dll工程的创建以及dll文件的生成: new p ...

最新文章

  1. delphi 使用UDP收发数据
  2. Kafka broker配置介绍 (四)
  3. iOS很重要的 block回调
  4. 如何在linux上创建数据库,在LINUX平台上手动创建数据库(oracle 10g)
  5. 国外一些知名ASP.Net开源CMS系统
  6. freecplus框架,Linux平台下C/C++程序员提高开发效率的利器
  7. TCP TIME_WAIT详解
  8. Android 和iOS 比较
  9. 大型企业网络构建之网关冗余
  10. 17ー03ー20 日本語勉強
  11. 修改卡巴斯基注册表,无限试用
  12. IDEA 自定义主题
  13. 下行文格式图片_谁能告诉我公文的下行文\上行文的模板
  14. 字符串百分号 c语言,C语言 输出百分号(%)的方法
  15. 解决Windows因更新导致C盘容量急剧减少
  16. JavaScript 中创建对象的方法(读书笔记思维导图)
  17. 利用Python获取历史双色球开奖结果
  18. css3基础知识总结
  19. 项目对接支付宝支付,内网穿透实现监听支付宝的支付成功异步回调通知
  20. 【剧透高亮】最最最完整剧透加剧情详细解析

热门文章

  1. 小程序 a标签_微慕WordPress小程序增强版V2.0新版上线
  2. 第二届Bio-protocol生物实验短视频大赛作品征集开始 | 奖品丰厚,等你来拿
  3. MPB:亚热带生态所谭支良、焦金真等-​反刍动物瘤胃样品采集与保存
  4. NC:南农团队解码并重构微生物群体感应系统
  5. NC | 植物分泌蛋白酶抑制细菌入侵的机理
  6. 想知道自己能不能长命百岁?窝个粑粑测个菌?
  7. 你想要的宏基因组-微生物组知识全在这(180601)
  8. php http传参数,http - PHP的URL传参数(英文句号变成了下划线)的问题,求解释。...
  9. R语言编写自定义函数自定义ggplot图像中的图例(legend)的位置、图例标题、键值、文本字体大小(title、text、key)、颜色标识的大小、点形状pch的大小
  10. R语言使用broom包将回归模型(线性回归、逻辑回归、比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集