>백엔드 개발 >PHP 튜토리얼 >javascript - js는 ajax 게시물의 데이터를 암호화하고 해독을 위해 php로 전송하는 데 어떤 방법을 사용합니까?

javascript - js는 ajax 게시물의 데이터를 암호화하고 해독을 위해 php로 전송하는 데 어떤 방법을 사용합니까?

WBOY
WBOY원래의
2016-09-26 08:40:111311검색

Ajax 포스팅을 할 때 일반 텍스트를 전송하고 싶지 않기 때문에 js를 사용하여 js 객체를 문자열이나 바이너리 문자열로 암호화하여 전송하고 싶은데 어떻게 암호화해야 할지 모르겠고, 암호화된 문자열은 PHP 측에서 해독이 필요합니다. 해독 후에 PHP 배열을 갖는 것이 가장 좋습니다. 이것을 달성하는 방법을 알고 있습니까?

답글 내용:

Ajax 포스팅을 할 때 일반 텍스트를 전송하고 싶지 않기 때문에 js를 사용하여 js 객체를 문자열이나 바이너리 문자열로 암호화하여 전송하고 싶은데 어떻게 암호화해야 할지 모르겠고, 암호화된 문자열은 PHP 측에서 해독이 필요합니다. 해독 후에 PHP 배열을 갖는 것이 가장 좋습니다. 이것을 달성하는 방법을 알고 있습니까?

우선, crypto-js가 문제를 해결할 수 있습니다. 대칭 암호화 알고리즘(예: AES-256-CBC)을 선택하고 AES + 비밀번호를 사용하여 PHP 측에서 암호화하고 AES + 비밀번호를 사용하여 js 측에서 암호를 해독합니다. 그러나 이는 비밀번호가 이미 설정되어 있기 때문에 의미가 없습니다. js 코드에서 일반 텍스트로 표현됩니다.

따라서 텍스트를 전송하지 않는 것이 목적이라면 전송 계층에서 비대칭 암호화를 구현하는 것이 좋습니다. 가장 간단한 방법은 서버 프로토콜을 HTTP에서 HTTPS로 변경하는 것입니다.

비대칭 암호화 알고리즘을 사용하여 브라우저에서 공개 키로 암호화하고 서버 측에서 개인 키로 복호화할 수 있습니다. jsencrypt 프로젝트는 RSA 암호화를 지원합니다. openssl을 사용하여 키 쌍을 생성한 다음 공개 키를 페이지에 입력하면 됩니다. PHP는 openssl 일련의 함수를 사용하여 암호를 해독할 수 있습니다.

암호화된 데이터와 복호화된 데이터는 모두 문자열입니다. 배열을 얻으려면 JS에서 객체를 만든 다음 JSON.stringify을 조정한 다음 암호화하면 됩니다. PHP가 디코딩하는 것은 JSON 문자열이며, json_decode 함수를 사용하여 이를 디코딩하여 배열을 얻을 수 있습니다.

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