>백엔드 개발 >PHP 튜토리얼 >중요한 코드 변경 없이 Mcrypt에서 OpenSSL로 마이그레이션하는 방법은 무엇입니까?

중요한 코드 변경 없이 Mcrypt에서 OpenSSL로 마이그레이션하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-22 05:30:14383검색

How to Migrate from Mcrypt to OpenSSL without Significant Code Changes?

대규모 레코딩 없이 Mcrypt에서 OpenSSL로 마이그레이션

배경:

PHP 애플리케이션은 현재 데이터 암호화를 위해 Mcrypt를 사용합니다. 복어 암호 및 ECB 모드. 그러나 암호화를 위해 OpenSSL로 마이그레이션해야 하는 문제에 직면하게 됩니다.

주요 차이점:

  • OpenSSL은 PKCS#7 패딩을 사용하는 반면 Mcrypt는 PKCS#5를 사용합니다.
  • OpenSSL은 달리 ECB 모드에서 초기화 벡터(IV)가 필요하지 않습니다. Mcrypt.

해결책:

중요한 코딩 없이 원활하게 마이그레이션하려면 다음 단계를 따르십시오.

  1. 암호화된 데이터 재생성: 이전에 PKCS#7로 데이터를 수동으로 채웁니다. Mcrypt로 암호화합니다. 예제 코드는 아래에 제공됩니다.

    $key = "anotherpassword1";
    $str = "does it work 12";
    $enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB);
  2. 복호화에 OpenSSL 사용: 암호화된 데이터를 다시 생성한 후 OpenSSL을 사용하여 올바른 암호와 모드:

    $key = "anotherpassword1";
    $enc = "0e93dce9a6a88e343fe5f90d1307684c";
    $dec = openssl_decrypt($enc, 'bf-ecb', $key, true);
    echo $dec;

참고: Mcrypt(56) 및 OpenSSL(0)에 서로 다른 IV 길이가 필요하다고 언급하셨습니다. 그러나 ECB 모드는 IV를 활용하지 않습니다.

이 단계를 따르면 광범위한 코드 수정 없이 Mcrypt에서 OpenSSL로 마이그레이션하여 기존 암호화된 데이터와의 호환성을 보장할 수 있습니다.

위 내용은 중요한 코드 변경 없이 Mcrypt에서 OpenSSL로 마이그레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.