您当前的位置: 首页 > 网站编程 > PHP教程 > 解析php php_openssl.dll的作用

解析php php_openssl.dll的作用

作者:不详 来源:网络 发布时间: 2014-08-14 21:51 点击:
本篇文章是对php中php_openssl.dll的作用进行了详细的分析介绍,需要的朋友参考下 一.openssl简介 数据加密是信息信息传输中的一个重要组成部分.任何信息都以明文方式传输,确实是个很不安全的做法.所以, 需要对数据进行加密.将明文数据转换为密文数据,再进行传输. Open

解析php php_openssl.dll的作用

  本篇文章是对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 php_openssl.dll的作用"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(2)
100%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4