> 백엔드 개발 > PHP 튜토리얼 > 암호 해독 호환성을 유지하면서 Mcrypt에서 OpenSSL 암호화로 마이그레이션할 수 있습니까?

암호 해독 호환성을 유지하면서 Mcrypt에서 OpenSSL 암호화로 마이그레이션할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-30 19:12:13
원래의
690명이 탐색했습니다.

Can I Migrate from Mcrypt to OpenSSL Encryption While Maintaining Decryption Compatibility?

암호화 라이브러리를 Mcrypt에서 OpenSSL로 업그레이드

질문:

가능합니까? 내 암호화 라이브러리를 Mcrypt에서 OpenSSL로 업그레이드하고 다음을 사용하여 암호화된 데이터를 해독하는 기능을 유지합니다. Mcrypt?

정보 충돌:

이 두 라이브러리 간의 호환성과 관련하여 온라인에서 상충되는 정보가 있는 것 같습니다.

  • 한 출처에서는 주장합니다. Mcrypt로 암호화된 데이터를 OpenSSL로 해독하는 것은 불가능합니다.
  • 다른 소식통에서는 이것이 패딩을 사용하면 가능합니다.

추가 컨텍스트:

현재 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿