질문 : McRypt에서 OpenSSL로 내 암호화 라이브러리를 업그레이드 할 수 있습니까? 그렇다면 어떻게?
대답 :
대답 : 예, McRypt에서 암호화 라이브러리를 OpenSSL로 업그레이드 할 수 있습니다. OpenSSL을 사용하여 McRypt로 암호화 된 데이터를 암호화 할 수 있습니다.
여기에 OpenSSL을 사용하여 McRypt로 암호화 된 데이터를 해독하는 방법에 대한 코드 예는 다음과 같습니다. $ salt = substr ($ data, 0, 128); $ enc = substr ($ data, 128, -64); $ mac = substr ($ data, -64); 목록 ($ cipherkey, $ mackey, $ iv) = $ this-> getKeys ($ salt, $ key); if ($ mac! == hash_hmac ( 'sha512', $ enc, $ mackey, true)) { 거짓을 반환합니다. } $ dec = OpenSSL_DECRYPT ($ enc, $ this-> cipher, $ cipherkey, openSSL_RAW_DATA, $ IV); Return $ Dec; }
추가 참고 사항 :
OpenSSL_DECRYPT (항상) 함수는 IV 매개 변수가 사용되는 CIPHER의 블록 크기와 동일한 길이와 동일한 길이가 아닌 경우 IV 매개 변수는 IV 매개 변수가 동일한 길이가되어야합니다.
CBC 모드의 OpenSSL_DECRYPT () 함수
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; }
테스트 :
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3