좋아, 파일을 서버에 업로드 할 때 암호화하려고합니다. stackoverflow에서 코드 here을 찾았지만, 이식하는데 문제가 있습니다. unexpected '(', expecting ',' or ';' in where/the/file/is.php
오류가 나타납니다. 그것은 const KEY = md5('somesecretcode');
라인을 가리키고 있습니다. 나는 그것이 md5
이후의 줄 끝을 예상한다고 말하고 있지만, 나는 왜 그런지 모르겠다. 당신은 그것이 지금 "암호화 된"문자열을 유효한 문자열로 받아 들일 것이라고 생각합니다. 필요한 경우, 더 많은 코드를 업로드 할 것입니다. 미리 도움을 주셔서 감사합니다! 나는이 일에 익숙하지 않으니 너무 거칠게 굴지 말아주세요.코드가 있지만이 오류는 무엇입니까?
여기에 코드
<?php
class Encryption
{
const CYPHER = MCRYPT_RIJNDAEL_256;
const MODE = MCRYPT_MODE_CBC;
const KEY = md5('somesecretcode');
public function encrypt($plaintext)
{
$td = mcrypt_module_open(self::CYPHER, '', self::MODE, '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, self::KEY, $iv);
$crypttext = mcrypt_generic($td, $plaintext);
mcrypt_generic_deinit($td);
return base64_encode($iv.$crypttext);
}
public function decrypt($crypttext)
{
$crypttext = base64_decode($crypttext);
$plaintext = '';
$td = mcrypt_module_open(self::CYPHER, '', self::MODE, '');
$ivsize = mcrypt_enc_get_iv_size($td);
$iv = substr($crypttext, 0, $ivsize);
$crypttext = substr($crypttext, $ivsize);
if ($iv)
{
mcrypt_generic_init($td, self::KEY, $iv);
$plaintext = mdecrypt_generic($td, $crypttext);
}
return trim($plaintext);
}
}
?>
있고 난 당신이 const
과 함께 함수 호출 또는 배열을 사용할 수 없습니다 ... 같은
$encrypted_string = Encryption::encrypt('this is a test'); // Åž-\Ž“kcþ1ÿ4gî:Xƒã%
$decrypted_string = Encryption::decrypt($encrypted_string); // this is a test
좋아, 나는 네가하는 말을 이해하고 있는지 확인하고 싶다. 'const'는 함수 호출을 가질 수 없기 때문에 md5 암호화를 사용하고 있는지 또는 자체 문자열 암호화 함수를 호출하는지는 중요하지 않습니다. 권리? 따라서 함수를 호출하는 대신 문자 그대로 암호화 된 코드를 넣어야합니까? Ex..'const KEY = '9319ca52f60ac20f620a1a3b265ade79'; '그게 당신이 말하는거야? 그건 그렇고, 나는 이것을 비밀 코드로 유지하지 않을거야. 그것은 우스꽝 스럽다. –
메소드에 없다면 클래스에 함수 호출을 넣을 수 없습니다 (예 :'public $ var = myfunction()'도 작동하지 않습니다). – deizel
@MichaelHarvey 맞다. 그냥 const로 md5의 문자열을 가질 수있다. deizel의 의견에도주의를 기울이십시오. –