2012-04-25 6 views
0

나는 몇 가지출력()

  • openssl_public_encrypt()와 openssl_private_encrypt() 함수의 출력은 무엇을 알고 싶습니다?
  • 위 기능의 출력 (암호화 된 데이터)은 웹에서 안전할까요?
  • 생성 된 암호화 된 데이터를 웹 사이트간에 어떻게 전송할 수 있습니까?
+0

이 기능에 대한 설명서를 보았습니까? – Wyzard

+0

"웹 안전"이란 무엇입니까? – CodesInChaos

+0

질문이 있으시면 맨 처음부터 시작해서 실제 요구 사항을 설명해야한다고 생각합니다. – CodesInChaos

답변

1

openssl_public_encrypt()은 메시지를 공개 키로 암호화하여 해당 개인 키만 해독 할 수 있도록합니다. 이것은 안되는 사람들이 볼 수 없도록 정보를 보호하는 데 사용됩니다.

openssl_private_encrypt()은 메시지를 개인 키로 암호화하여 해당 공개 키를 가진 사람이 누구든지 암호를 해독 할 수 있도록합니다. 이것은 이 아니며 원하지 않는 눈으로부터 정보를 보호하는 데 사용되는이 아니며 데이터가 수정되지 않았 음을 확인하는 데 도움이되는 디지털 서명을 만드는데 사용됩니다. 일반적으로이 함수를 사용하면 안됩니다. 대신 openssl_sign()openssl_verify()을 사용하십시오.

암호화 및 서명은 일반적으로 함께 사용됩니다. 데이터를 가져 와서 자신의 개인 키로 (openssl_sign()을 사용하여) 서명 한 다음 (openssl_public_encrypt() 사용)받는 사람의 공개 키로 암호화합니다. 서명과 암호화 된 메시지를받는 사람에게 보내면받는 사람은 자신의 개인 키로 메시지 (openssl_private_decrypt() 사용)를 해독하고 공개 키로 서명 (openssl_verify() 사용)을 확인할 수 있습니다. 이렇게하면 메시지가 전송되는 동안 누구도 또는을 읽을 수 없으므로 "웹 안전"이라는 의미 일 수 있습니다.

웹 사이트간에 데이터를 전송하는 방법은 원하는대로 할 수 있습니다. HTTP, FTP, 전자 메일, API 호출 등. 암호화 및 서명의 요점은 메시지를 안전하게 전송하기 위해 특별한 수단을 사용할 필요가 없다는 것입니다.

+0

websafe 의미, 내 URL의 쿼리 문자열에서 암호화 된 데이터를 인수로 사용할 수 있습니까? –

+0

텍스트가 아닌 바이너리 데이터이므로 쿼리 문자열에서 사용하기 위해 제대로 이스케이프 처리해야합니다. (또는 16 진수 또는 16 진수를 사용하여 텍스트로 변환 할 수도 있습니다.) URL 쿼리 문자열에 * 많은 양의 데이터를 넣지 않으려 고합니다. 그러나 이러한 고려 사항은 쿼리 문자열에 넣을 내용에 적용됩니다. 암호화 된 데이터도 마찬가지입니다. – Wyzard