아래 그림과 같이 I 인코딩 및 액세스 토큰을 디코딩하는 Mcrypt 라이브러리에 대한 PHP 코드를 가지고 :Mcrypt 라이브러리 디코딩 데이터 형식
$string = "secrettoken";
// Encryption/decryption key
$key = "key12345";
// Encryption Algorithm
$cipher_alg = MCRYPT_RIJNDAEL_256;
// Create the initialization vector for added security.
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,
MCRYPT_MODE_ECB), MCRYPT_RAND);
// Output original string
print "Original string: $string <p>";
// Encrypt $string
$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_CBC, $iv);
$token = bin2hex($encrypted_string); //prints in hexadecimal format
// Convert to hexadecimal and output to browser
print "Encrypted string: ".encrypted_string."<p>";
$decrypted_string = mcrypt_decrypt($cipher_alg, $key, $encrypted_string,
MCRYPT_MODE_CBC,$iv);
print "Decrypted string: $decrypted_string";
//check if the original string is equal to the descripted string
if($decrypted_string == $string)
print("Yep");
else
print("Nada");
// scrypt를 실행 한 후, 나는 다음과 같은 결과를 얻을 : 원본 문자열 : secrettoken 암호화 된 문자열 : 해독 된 문자열을 encrypted_string : secrettoken 문자열 = 해독 문자열 :
거짓 그래서 $ 문자열과 $ descrypted 문자열의 값이 값을 비교하려고하는 것은 그렇지 않은 증명, 동일하더라도처럼 보인다. 나는 그것이 데이터 유형과 관련이 있다고 가정하고있다. 나는 단지 PHP를 배우고 있다고 고백해야한다. (나의 주요 플랫폼은 자바이고 가변 타입은 PHP와는 다르다). 그렇다면 어떻게 두 값을 비교하여 사실이 될 수 있습니까? 나는 "==="을 사용해 보았고 또한 작동하지 않았다.
출력중인'encrypted_string' 전에'$'기호가 누락되면 도움이되지 않습니다. –