> 백엔드 개발 > PHP 튜토리얼 > Blowfish 암호화를 위해 Mcrypt에서 OpenSSL로 마이그레이션하는 방법은 무엇입니까?

Blowfish 암호화를 위해 Mcrypt에서 OpenSSL로 마이그레이션하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-08 14:59:11
원래의
389명이 탐색했습니다.

How to Migrate from Mcrypt to OpenSSL for Blowfish Encryption?

Mcrypt에서 OpenSSL로 마이그레이션

현재 구현에서는 암호화를 위해 Mcrypt를 사용하지만 OpenSSL로 전환하는 것이 목표입니다. ECB 모드에서 Mcrypt의 복어 암호는 Mcrypt의 경우 IV 길이가 56이고 OpenSSL의 경우 0이 필요한 등 OpenSSL과의 차이점을 나타냅니다.

모듈을 원활하게 마이그레이션하려면 다음을 수행하세요.

  • 패딩 이해하기 차이점:

    • Mcrypt는 PKCS#5 패딩을 사용하는 반면 OpenSSL은 PKCS#7을 사용합니다. 데이터를 암호화할 때 일관된 패딩을 보장하세요.
  • 수동 패딩:

    • OpenSSL은 PKCS#7을 사용하므로 수동으로 패딩해야 합니다. Mcrypt로 암호화하기 전에 데이터를 채웁니다. 여기에는 데이터에 "1"이 추가됩니다.
  • IV 초기화:

    • ECB 모드는 IV를 활용하지 않습니다. 따라서 OpenSSL과 함께 ECB를 사용하는 경우 코드에서 IV 초기화를 제거해야 합니다.
  • 키 길이 고려 사항:

    • Mcrypt 최대 56바이트의 키 크기를 지원하는 반면 OpenSSL에는 키 크기 제한이 없습니다. 이에 따라 키 크기를 조정하세요.
  • 재암호화:

    • 호환성을 보장하려면 기존 키를 다시 암호화하는 것을 고려하세요. OpenSSL을 사용하여 Mcrypt로 암호화된 데이터. 이렇게 하면 다양한 패딩 알고리즘으로 인한 불일치가 제거됩니다.

예제 코드:

$key = "anotherpassword1";
$str = "does it work 12";

// MCRYPT with PKCS#7 padding
$iv = str_repeat("", 8); // Dummy IV for ECB
$enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB, $iv);

// OpenSSL with PKCS#7 padding
$enc = openssl_encrypt($str, 'bf-ecb', $key, true);

// Decrypt with OpenSSL (requires re-encryption)
// $dec = openssl_decrypt($enc, 'bf-ecb', $key, true);
// echo var_dump($dec);
로그인 후 복사

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

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