>  기사  >  백엔드 개발  >  php php_openssl.dll의 역할 분석

php php_openssl.dll의 역할 분석

高洛峰
高洛峰원래의
2016-12-30 14:00:341147검색

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

OpenSSL은 SSL/TLS 프로토콜용 암호화 도구 세트입니다.
1. 개인 키를 생성합니다. 즉, 한 방향으로 데이터를 암호화하고 해독하는 데 사용할 수 있는 공개 키가 포함된 디지털 서명 인증서입니다. 즉, 공개 키를 사용하여 암호화된 데이터는 개인 키를 사용하여만 해독할 수 있습니다.
3. 메시지 다이제스트를 계산합니다.
4. SSL/TLS 클라이언트 및 서버 측 테스트

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. 이메일 암호화에 인증서 사용
일반 텍스트 메시지 내용:

$ 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 버전: 1.0
Content -처리: filename="smime.p7m"
콘텐츠 유형: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"

콘텐츠 전송-인코딩 : base64


MIIBYAYJKoZIhvcNAQcDoIIBUTCCAU0CAQAxgewwgekCAQAwUjBFMQswCQYDVQQG
EwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lk
Z2l0cyBQdH kgTHRkAgkAr71mh4NRX/UwDQYJKoZIhvcNAQEBBQAEgYCbrA1WBwQK
Zj7TcNtrxiDz qMBc/Lu063SLKvBK6mQMqT+npFOOFtzIKdFVkldH0YyQhMZDSCyq

YUtG wOaDw6Jn0A HRt64UwPOKoaeL9RVqp9vgtiFC/uXis5UeyZCWS1z7Jsih8Aa+

Da/DQN0sOCX85OdK/TDewNx8mTaYBbVf4jBZBgkqhkiG9w0BBwEwGgYIKoZIhvcN
AwI wDgICAKAAECNxsgiJ2 s+ 1ugdc6jknpl+rdybcddcyph+bmyjqrup0he/gq5wsj
sv8cdkoudvy5xg440yial3z3ysi = 개인 키를 사용하여 dtest.txt를 출력하고 출력합니다. txt 복호화된 편지 내용을 확인하세요.

$ cat dtest.txt
111111
222222
333333

444444

aaaaaa

5. 암호화된 단순 파일
일반 텍스트 파일 내용:

$ cat test.txt
1
22
333
4444
55555

안녕하세요 암호화된 일반 텍스트 파일입니다. 출력은 test .enc 파일입니다. 암호화 비밀번호로 "123123"을 입력하세요.


$ openssl enc -aes-256-cbc -salt -in test.txt -out test.enc
aes-256-cbc 암호화 비밀번호 입력:
확인 중 - aes-256-cbc 암호화 비밀번호 입력: 암호문을 해독하고, 해독 비밀번호로 "123123"을 입력합니다:

$ openssl enc -d -aes-256-cbc -in test.
aes-256-cbc 암호 해독 비밀번호 입력:

1

22
333
4444

55555

안녕하세요

6. 단순 문자열 암호화
base64를 사용하여 암호화:

$ echo "encode me" | openssl enc -base64
ZW5jb2RlIG1lCg==복호화할 때 알아야 할 사항 암호화 알고리즘을 복호화하려면 다음을 수행하세요.

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

7. SSL 클라이언트 및 서버 테스트

개인 키와 인증서 "-www"를 사용하여 SSL 서버를 시작합니다. 클라이언트가 서버에 연결될 때 클라이언트에 상태 정보 웹 페이지를 보내는 기능입니다.

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으로 문의하세요.