데이터 또는 객체 배열을 암호화하고이를
hash
직렬화 된 문자열로 반환 할 수있는 최상의 암호화/암호 해독 클래스/함수는 무엇입니까?암호화/암호 해독 PHP 클래스
그런 다음 암호 해독시 직렬화 된 문자열을 개체 또는 배열 값을 포함하는 원래 값 형식으로 다시 해독 할 수 있습니다.
감사
데이터 또는 객체 배열을 암호화하고이를
hash
직렬화 된 문자열로 반환 할 수있는 최상의 암호화/암호 해독 클래스/함수는 무엇입니까?암호화/암호 해독 PHP 클래스
그런 다음 암호 해독시 직렬화 된 문자열을 개체 또는 배열 값을 포함하는 원래 값 형식으로 다시 해독 할 수 있습니다.
감사
mcrypt 라이브러리에는 꿈꾸는만큼 많은 방법으로 암호화를 수행하는 많은 기능이 있습니다. 다음은 AES를 사용한 예입니다.
$secretKey = 'the longer, the better';
$originalString = 'some text here';
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secretKey, $originalString,
MCRYPT_MODE_CBC, $iv);
printf("Original string: %s\n", $originalString);
// Returns "Original string: some text here"
printf("Encrypted string: %s\n", $crypttext);
// Returns "Encrypted string: <gibberish>"
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secretKey, $crypttext,
MCRYPT_MODE_CBC, $iv);
// Drop nulls from end of string
$decrypttext = rtrim($decrypttext, "\0");
printf("Decrypted string: %s\n", $decrypttext);
// Returns "Decrypted string: some text here"
다른 시스템과 쉽게 상호 운용 할 계획이라면 MCRYPT_RIJNDAEL_256을 사용하지 않는 것이 좋습니다. AES를 포함한 Rijandael의 대부분의 구현은 128 비트 블록 크기를 사용합니다. 256 비트 블록 크기로 작업하면 다른 시스템이 PHP 서비스와 통신 할 수있는 PITA가 될 수 있습니다. 여전히 256 비트 키를 128 비트 Rijandael 블록과 함께 사용할 수 있습니다. –