2013-06-10 3 views
0

Yii Framework에서 openssl_encrypt를 사용하여 숫자를 암호화하려고합니다.openssl_encrypt는 openssl_decrypt를 사용할 때 null 값을 생성합니다.

번호를 암호화하여 관리했습니다.

숫자의 암호를 해독하려고하면 null 값이 표시됩니다.

$this->user->cnp = openssl_encrypt($this->user->cnp, Utils::$encryptionMethod, Utils::$secretHash, Utils::$options, Utils::$iv); 

이 내가 해독하는 방법입니다,하지만 난 수에 대한 null 값을 얻을 :

class Utils { 
    /* 
    * variables and values used to encrypt and decrypt the cnp 
    */ 
    public static $textToEncrypt = "My super secret information."; 
    public static $encryptionMethod = "AES-256-CBC"; // AES is used by the U.S. gov't to encrypt top secret documents. 
    public static $secretHash = "25c6c7ff35b9979b151f2136cd13b0ff"; 
    public static $options = false;//options can be one of OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING or false 
    public static $iv = '123456789'; 

} 

이 내가 번호를 암호화하고 난 결과를 얻을 수로이 부분이 어떻게 작동

echo 'cnp encrypted: ' . openssl_encrypt('1850302260089', Utils::$encryptionMethod, Utils::$secretHash, Utils::$options, Utils::$iv); 

echo ' cnp decripted' . openssl_decrypt('1850302260089', Utils::$encryptionMethod, Utils::$secretHash, Utils::$options, Utils::$iv); 
,536,913 :이 기능을 사용하는 경우
$a = openssl_decrypt($model->cnp, Utils::$encryptionMethod, Utils::$secretHash, Utils::$options, Utils::$iv); 

echo 'cnp decripted: ' . $a; 

이유는 원래 값을 얻을하지 않습니다 63,210

+0

작동 어디에 즉 /api/1.1/CApplication#securityManager-detail) 구성 요소가 있지만 모든 요구 사항에 맞는지 확인하지 않았습니다. – schmunk

답변

1

openssl와는 아무하지만 값 당신이에서 $model->cnp셨어요 decrypt

하려고하는이 없습니다 ??? YII는 [보안 관리자] (http://www.yiiframework.com/doc 있습니다 문제가

$cnpData = openssl_encrypt($this->user->cnp, Utils::$encryptionMethod, Utils::$secretHash, Utils::$options, Utils::$iv); 
$a = openssl_decrypt($cnpData , Utils::$encryptionMethod, Utils::$secretHash, Utils::$options, Utils::$iv); 

echo 'cnp decripted: ' . $a 

그냥 테스트를 시도

이며이 Btw는 완벽하게

+0

cnp는 고유 한 숫자이며 각 사람마다 하나씩 있습니다. 양식을 사용하여 번호를 얻었습니다. 그럼 내가보기로 리디렉션있어 그리고 난 더 이상 그것에 액세스 할 수 없다; 자, 새로운 cnp는 $ model-cnp –

+1

당신 말이 맞았습니다. –

관련 문제