2013-11-21 4 views
1

오류가 발생합니다. mcrypt_encrypt() : IV 매개 변수는 두 번째 줄의 블록 크기가이어야합니다.PHP 오류 : mcrypt_encrypt() : IV 매개 변수가 블록 크기와 같아야합니다.

$data = "Currency=GBP&SuccessURL=test&FailureURL=test&VendorEMail=test&SendEMail=1&eMailMessage=&Amount=&Description=&CustomerName=test test&CustomerEMail=test&BillingSurname=test&BillingFirstnames=test&BillingAddress1=test&BillingAddress2=test&BillingCity=test&BillingPostCode=test&BillingCountry=test&BillingPhone=test&DeliverySurname=test&DeliveryFirstnames=test&DeliveryAddress1=test&DeliveryAddress2=test&DeliveryCity=test&DeliveryPostCode=test&DeliveryCountry=test\u0003\u0003\u0003"; 
    $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, 'test', $data, MCRYPT_MODE_CBC, 'test'); 

답변

1

IV 매개 변수 내가 생각했던대로() mcrypt_encrypt의 4 번째 매개 변수가 아닙니다. 실제로는 마지막 매개 변수 인 5 번째 매개 변수입니다.
여기에 http://php.net/manual/en/function.mcrypt-encrypt.php을 지정합니다. iv입니다.

$ 데이터의 블록 크기는이 인스턴스에서 16 이었으므로 mcrypt_encrypt()의 마지막 매개 변수는 16 자 여야했습니다.

blocksize는 데이터 문자열을 나눌 수있는 숫자입니다. 그렇지 않으면 블록의 마지막 부분이 패딩되어야합니다.

2

제 경우에도 동일한 오류가 나타납니다. 이전에 실제 암호를 사용하고있었습니다. 하지만 암호화 된 암호를 사용하면 효과가있었습니다. sagepay.php 라인 54에서 $ encryptPassword = ""를 보호했습니다. 여기에서 나는 나의 테스트 계정에있는 암호화 된 패스워드를 사용했다. 이제 그 일.
도움이 될 수 있습니다.
감사합니다.

+0

암호화 된 암호 란 암호를 암호화하는 방법을 의미합니다. – comeback4you

+0

비밀번호를 암호화 할 필요가 없습니다. U는 당신의 acc. – Sajal

+0

너 괜찮아 ... 비밀 번호가있어. 이메일 ID를 알려 주시기 바랍니다. – comeback4you

관련 문제