php php_openssl.dll作用
来源:互联网 发布:淘宝执政官衣服好不好 编辑:程序博客网 时间:2024/06/05 20:55
一.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 1024
2.公用密钥的生成方法
根据私钥来生成公钥#生成dsa算法的公钥$ openssl dsa -in dsakey0.pem -pubout -out dsakey0-pub.pem#生成rsa算法的公钥$ openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub.pem
3.自签名证书的生成方法
#产生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.txt111111222222333333444444aaaaaa
使用证书对明文信件进行加密,输出到etest.txt文件:
$ openssl smime -encrypt -in test.txt -out etest.txt mycert-rsa.pem
查看加密后的密文内容:
$ cat etest.txt MIME-Version: 1.0Content-Disposition: attachment; filename="smime.p7m"Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"Content-Transfer-Encoding: base64MIIBYAYJKoZIhvcNAQcDoIIBUTCCAU0CAQAxgewwgekCAQAwUjBFMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkAgkAr71mh4NRX/UwDQYJKoZIhvcNAQEBBQAEgYCbrA1WBwQKZj7TcNtrxiDzqMBc/Lu063SLKvBK6mQMqT+npFOOFtzIKdFVkldH0YyQhMZDSCyqYUtGwOaDw6Jn0AHRt64UwPOKoaeL9RVqp9vgtiFC/uXis5UeyZCWS1z7Jsih8Aa+Da/DQN0sOCX85OdK/TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIhvcNAwIwDgICAKAECNxsgiJ2s+1ugDC6JknPL+rDYBCddcyPH+bMYjqrUP0hE/GQ5WSjsv8CDkOUdvY5XG440yiAL3Z3ysI=
使用私钥进行解密,输出到dtest.txt文件:
$ openssl smime -decrypt -in etest.txt -inkey rsakey0.pem -out dtest.txt
查看解密后的信件内容,与原明文信件内容完全一致.
$ cat dtest.txt 111111222222333333444444aaaaaa
5.简单的文件加密
明文文件内容:
$ cat test.txt 122333444455555Hello
加密明文文件,输出为test.enc文件,输入”123123”作为加密密码:
$ openssl enc -aes-256-cbc -salt -in test.txt -out test.encenter aes-256-cbc encryption password:Verifying - enter aes-256-cbc encryption password:
对密文进行解密,输入”123123”作为解密密码:
$ openssl enc -d -aes-256-cbc -in test.encenter aes-256-cbc decryption password:122333444455555Hello
6.简单的字符串加密
采用base64方式进行加密:
$ echo "encode me" | openssl enc -base64ZW5jb2RlIG1lCg==
解密时,需要知道加密算法,才可解密:
$ 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作用
- php php_openssl.dll作用
- php 访问 https 时要开启 extension=php_openssl.dll
- PHP动态库php_mcrypt.dll和php_openssl.dll无法加载的问题
- IPHLPAPI.DLL的作用
- dll文件的作用
- DLL文件的作用
- DLL文件的作用
- PHP php中的@作用
- PHP php中的@作用
- dll中DllMain的作用
- PHP 调用 C# dll
- 开发 PHP 扩展 DLL
- PHP调用DLL
- 开发 PHP 扩展 DLL
- php extension dll all
- php-redis.dll
- php com dll php COM php DynamicWrapper
- LTIB使用总结
- WPF - 第三方控件
- 杭电 1423 (最长上升公共子序列 LCIS )
- java.sql.SQLException:Value ‘0000-00-00′ can not be represented as java.sql.Date .
- 通用的ajax分页编写
- php php_openssl.dll作用
- HTTP协议
- ubuntu samba服务器搭建
- 用下流的姿态枪毙了爱情:伤感日志
- IT人,请爱惜你的身体
- VI常用操作(未完善)
- linux pci驱动(转)
- 机器学习与视觉大牛族谱深度挖掘
- PowerPC汇编指令集