2012-01-30 4 views
-1

mcrypt_encrypt을 사용하여 문자열이 암호화 된 경우 PHP에서 테스트 할 수 있습니까?PHP에서 mcrypt_encode를 사용하여 문자열이 암호화되었는지 테스트하십시오.

+0

유효한 암호화 된 문자열인지 (암호화되지 않았을지라도) 테스트 되었습니까? 아니면 실제로 암호화 되었습니까? 두 번째 경우, 포기할 수도 있습니다. 암호화가 실제 문자열 (암호화 대기 중)인지 아니면 암호화 된 것인지 알 수 없습니다. – axiomer

+0

다른 기능으로 암호화 된 것과 반대로? –

+0

문자열이 암호화되었는지 여부를 PHP가 알 수있는 방법이 없습니다. @ Mark B가 이미 언급했기 때문에 해독 해보는 것이 유일한 방법입니다 (하지만 데이터를 볼 수 있거나 적어도 추측 할 수 있는지 여부는 암호화 된 것인지 아닌지). 검사. 데이터가 암호화되어 있어야합니다. –

답변

1
당신은 구체적으로는 약 실제로 우려 무엇을 작성하지 않은

:하지만,

암호화 된 일부 데이터 여부는 암호화 기능을 사용 되었으나하는 암호화 알고리즘에 의존하지 않는다. 예를 들어 누군가가 PERL 또는 PHP에서 무언가를 암호화 한 경우 암호화 된 문자열을 사용하여 알 수 없습니다.

이렇게 적용하면 mcrypt_encrypt을 알 수 없습니다. 이 함수는 암호화 된 데이터 안에 어떠한 사인도 남기지 않습니다.

그러나 키와 원래 텍스트 (일반) 및 알고리즘이있는 경우 mcrypt_encrypt의 코드는 mcrypt_decrypt으로 바꿀 수 있습니다. 그런 다음 평원을 비교할 수 있습니다. 일치하면 평문이 특정 키와 알고리즘으로 암호화되었다고 말할 수 있습니다.

우리가 암호화에 대해 말하는 것처럼, 이것은 일반적으로 그렇지 않습니다. 평범하지 않습니다.

그러나 일반 텍스트의 체크섬을 만들고 암호화 할 수도 있습니다. 그런 다음 나중에 암호를 해독하고 암호화 된 평문의 체크섬과 비교하여 데이터가 성공적으로 해독되었는지 여부를 알 수 있습니다. 그러나 이것이 보여 주듯이 실제로 암호화 된 데이터 옆에 추가 정보가 있습니다.

원하는 정보를 더 추가하면 더 유용한 제안을하는 것이 가능할 수 있습니다.

0

암호화 할 때 문자열에 일부 정적 텍스트를 추가합니다. 원래 문자열이없는 정적 텍스트로 이번에는 mcrypt_encode를 다시 사용하십시오. 암호화 된 정적 텍스트가 암호화 된 문자열에 있는지 확인하십시오. 작동해야합니다

1

아마도 mcrypt_encrypt()을 의미할까요? mcrypt_encode() 함수는 없습니다.

아니요. 올바르게 암호화 된 문자열은 임의의 쓰레기와 구별 할 수 없습니다. 암호화 된 문자열을 테스트하여 암호화되었는지 확인하는 유일한 방법은 암호를 해독하는 것입니다.

관련 문제