나는 온라인으로 다음과 같은 해독 기능을 발견했다. 내가 찾은 다른 해독 기능이 기능의 varation 있습니다제거 패딩 기능
public function Decrypt($data) {
$crypt = base64_decode($data);
$iv_size = mcrypt_get_iv_size($this->Algo, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypt = mcrypt_decrypt($this->Algo, $this->Key, $crypt, MCRYPT_MODE_ECB, $iv);
$block = mcrypt_get_block_size('blowfish', 'ecb');
$pad = ord($decrypt[($len = strlen($decrypt)) - 1]);
return substr($decrypt, 0, strlen($decrypt) - $pad);
}
내 질문은 다음 경우 : ORD() 함수는 문자의 ASCII 값을 제공합니다. 그런 다음이 ASCII 값은 문자열 길이와 관련된 계산에 사용됩니다. 왜 그런 경우입니까? (패딩이 이루어진 ASCII 값이 문자열 길이와 함께 사용되어서는 안됩니다.)
실제로 작동합니까? 또한 암호화 된 부분은 어디에 있습니까? –
예,이 기능은 작동합니다. 일부 모의 데이터로 테스트 한 결과 반환 값은 항상 예상대로입니다. – Tom
'ord'에 대한 문서는 완전히 잘못된 것은 아니지만 다소 오도 된 것입니다. 바이트의 부호없는 정수 값을 반환합니다. 어느 ASCII 상관 관계. # – Flosculus