mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic — 이 함수는 데이터를 암호화합니다.

경고 이 함수는 PHP 7.1.0에서 더 이상 사용되지 않으며 PHP 7.2.0에서 제거되었습니다. 이 함수에 의존하는 것은 매우 권장되지 않습니다.


설명

mcrypt_generic(resource $td, string $data): string

이 함수는 데이터를 암호화합니다. 데이터 길이가 n * 블록 크기인지 확인하기 위해 데이터가 "\0"으로 채워집니다. 이 함수는 암호화된 데이터를 반환합니다. 반환된 문자열의 길이는 데이터 패딩으로 인해 실제로 입력보다 길 수 있습니다.

암호화된 데이터를 데이터베이스에 저장하려면 mcrypt_generic에서 반환된 전체 문자열을 저장해야 합니다. 그렇지 않으면 문자열이 완전히 해독되지 않습니다. 원래 문자열의 길이가 10자이고 블록 크기가 8이면(블록 크기를 결정하기 위해 mcrypt_enc_get_block_size()를 사용) 데이터베이스 필드에 최소 16자가 필요합니다. mdecrypt_generic()에 의해 반환된 문자열도 16자가 됩니다... rtrim($str, "\0")을 사용하여 패딩을 제거하십시오.

예를 들어 MySQL 데이터베이스에 데이터를 저장하는 경우 varchar 필드는 삽입하는 동안 자동으로 후행 공백이 제거된다는 점을 기억하십시오. 암호화된 데이터는 공백(ASCII 32)으로 끝날 수 있으므로 이 제거로 인해 데이터가 손상됩니다. 대신 tinyblob/tinytext(또는 더 큰) 필드에 데이터를 저장합니다.


매개변수

td
암호화 설명자.

암호화 핸들은 이 함수를 호출하기 전에 항상 키와 IV를 사용하여 mcrypt_generic_init()로 초기화해야 합니다. 암호화가 완료되면 mcrypt_generic_deinit()를 호출하여 암호화 버퍼를 해제해야 합니다. 예는 mcrypt_module_open()을 참조하십시오.

data
암호화할 데이터입니다.

반환 값

암호화된 데이터를 반환합니다.


기타