>백엔드 개발 >PHP 튜토리얼 >php php_openssl.dll 파일의 용도는 무엇입니까?

php php_openssl.dll 파일의 용도는 무엇입니까?

怪我咯
怪我咯원래의
2017-07-06 10:01:152192검색

이 글은 php에서 php_openssl.dll의 역할을 자세히 분석하고 소개한 글입니다. 필요한 친구들은 참고하시면 됩니다

1.opensslIntroduction
데이터 암호화는 정보 전송에 있어서 중요한 부분입니다. 정보를 일반 텍스트로 전송하는 것은 실제로 매우 안전하지 않습니다. 따라서
데이터를 암호화해야 합니다. 일반 텍스트 데이터는 전송 전에 암호 텍스트 데이터로 변환됩니다.

OpenSSL은 SSL/TLS의 집합입니다. 프로토콜의 암호화 도구에는 다음과 같은 기능이 있습니다.
1. 개인 키를 생성합니다.
2. 공개 키를 포함하고 데이터를 암호화하고 해독하는 데 사용할 수 있는 디지털 서명 인증서를 생성합니다. 즉, 공개 키로 암호화된 데이터는
개인 키를 통해서만 복호화할 수 있습니다. 개인 키로 암호화된 데이터는 공개 키
4.SSL/을 사용하여 복호화할 수 있습니다. TLS 클라이언트 및 서버 측 테스트 5. S/MIME 태그 및 이메일 암호화 처리

2. 암호화 기술 소개

암호화는 일반 텍스트를 기밀로 유지하는 프로세스입니다.
암호화 알고리즘: 데이터 암호화 프로세스에서 사용되는 알고리즘입니다.
키: 암호화 알고리즘은 암호화된 데이터를 생성하기 위해 키를 사용하여 일반 텍스트 데이터를 암호화합니다. 암호화 알고리즘은 키를 사용하여
암호화된 데이터를 일반 텍스트 데이터로 변환합니다.
오늘날의 암호화 기술과 암호화 알고리즘은 암호화에 사용되는 계산 방법을 모두가 알고 있습니다. 그러나 키를 사용해야만 암호문을 복호화할 수 있습니다. , 키 보호는 데이터 보안의 핵심입니다.



3. 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 이메일 암호화에 인증서를 사용하세요.
us 일반 텍스트 문자 내용:
$ cat test.txt111111
222222
333333
444444

aaaaaa


인증서를 사용하여 일반 텍스트 문자를 암호화하고 etest.txt 파일로 출력합니다.

$ openssl smime -encrypt -in test txt -out etest.txt mycert-rsa.pem 암호화된 암호문 콘텐츠 보기:

$ cat etest.txt
MIME-Version: 1.0Content-Dis
position
: attachmentname; "smime.p7m"

콘텐츠 유형: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"

Content-Transfer-Encoding: base64

MIIBYAYJKoZIhvcNAQcDoIIBUTCCAU0CAQAxgewwgekCAQAwUjBFMQswCQYDVQ QGEwJBVTETMB EGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkAgk Ar71mh4NRX /UwDQYJKoZIhvcNAQEBBQAEgYCbrA1WBwQK
Zj7TcNtrxiDzqMBc/Lu063SLKvBK 6mQMqT+npFOOFtzIKdFVkldH0YyQhMZDSCyq
YUtGwOaDw6Jn0AHRt64UwPOKoaeL9RVqp 9vgtiFC/uXis5UeyZCWS1z7Jsih8Aa+

Da/DQN0sOCX85OdK/TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIhvcN

AwIwDgICAKAAECNxsgiJ2s+1ugDC6JknPL+rDYBCddcyPH+bM YjqrUP0hE/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.en ㄷ 파일에서 암호화 비밀번호로 "123123"을 입력하세요.

$ openssl enc -aes-256-cbc -salt -in test.txt -out test.enc
enter aes-256-cbc 암호화 비밀번호:
확인 중 - aes- 입력 256-cbc 암호화 비밀번호: 암호문을 해독하려면 해독 비밀번호로 "123123"을 입력하세요.

$ openssl enc -d -aes-256-cbc -in test.enc
enter aes-256-cbc 암호 해독 비밀번호:
1
22
333
4444
55555
Hello

6.
base64를 사용하여 암호화:
$ echo "encode me" | openssl enc -base64

ZW5jb2RlIG1lCg== 해독할 때 먼저 암호화 알고리즘을 알아야 합니다.


$ echo "ZW5jb2RlIG1lCg==" | 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.