암호화 라이브러리를 Mcrypt에서 OpenSSL로 업그레이드
질문:
가능합니까? 내 암호화 라이브러리를 Mcrypt에서 OpenSSL로 업그레이드하고 다음을 사용하여 암호화된 데이터를 해독하는 기능을 유지합니다. Mcrypt?
정보 충돌:
이 두 라이브러리 간의 호환성과 관련하여 온라인에서 상충되는 정보가 있는 것 같습니다.
추가 컨텍스트:
현재 Mcrypt를 사용하는 암호화 클래스를 OpenSSL을 사용하는 암호화 클래스로 변환하려고 합니다. 그런데 Mcrypt 버전으로 암호화된 데이터를 복호화하는데 어려움을 겪고 있습니다.
복호화 작업 코드:
OpenSSL 버전의 복호화 루틴에 대해 다음과 같이 수정된 코드입니다. 작동이 확인되었습니다:
public function decrypt($data, $key) { $salt = substr($data, 0, 128); $enc = substr($data, 128, -64); $mac = substr($data, -64); list ($cipherKey, $macKey, $iv) = $this->getKeys($salt, $key); if ($mac !== hash_hmac('sha512', $enc, $macKey, true)) { return false; } $dec = openssl_decrypt($enc, $this->cipher, $cipherKey, OPENSSL_RAW_DATA, $iv); return $dec; }
테스트 결과:
이 수정된 코드를 다양한 데이터와 키로 테스트한 결과 아무런 실패도 없었습니다.
결론:
업그레이드가 가능합니다. Mcrypt에서 OpenSSL로 암호화 라이브러리를 변환하고 업데이트된 암호 해독을 사용하는 경우 이전 라이브러리로 암호화된 데이터를 성공적으로 해독합니다. 루틴.
위 내용은 암호 해독 호환성을 유지하면서 Mcrypt에서 OpenSSL 암호화로 마이그레이션할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!