"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Posso migrar minha criptografia de McRypt para OpenSSL e descriptografar dados criptografados por McRypt usando o OpenSSL?

Posso migrar minha criptografia de McRypt para OpenSSL e descriptografar dados criptografados por McRypt usando o OpenSSL?

Postado em 2025-06-15
Navegar:686

Can I Migrate My Encryption from Mcrypt to OpenSSL, and Decrypt Mcrypt-Encrypted Data Using OpenSSL?

Atualizando minha biblioteca de criptografia de McRypt para OpenSSL

posso atualizar minha biblioteca de criptografia de McHRPT para openssl? No OpenSSL, é possível descriptografar dados criptografados com McRypt? Duas postagens diferentes fornecem informações conflitantes. Se sim, como? é possível descriptografar dados criptografados com McRypt usando o OpenSSL.

Aqui está um exemplo de código de como você pode descriptografar dados criptografados com McRypt usando o OpenSSL:

função pública decrypt ($ dados, $ key) {] $ sal = substr ($ dados, 0, 128); $ ENC = Substr ($ Data, 128, -64); $ MAC = substrato ($ dados, -64); Lista ($ cipherkey, $ mackey, $ iv) = $ this-> getKeys ($ sal, $ key); if ($ mac! == hash_hmac ('sha512', $ ENC, $ mackey, true)) { retornar falso; } $ dec = OpenSSL_Decrypt ($ ENC, $ this-> cipher, $ cipherkey, openSSL_RAW_DATA, $ IV); retornar $ DEC; }

NOTAS ADICIONAIS:

a função OpenSSL_DECRYPT () requer que o parâmetro IV seja o mesmo que o tamanho do bloco não é usado, o tamanho do mesmo que o mesmo, o tamanho da cifra, o mesmo que o tamanho da cifra é o mesmo que o mesmo que o parâmetro não é usado, o tamanho da cifra que não é o que se usa, o mesmo que o parâmetro não é usado, o tamanho da cifra que não é o que se usa, o mesmo que o tamanho do parâmetro não é usado, o mesmo que o tamanho do bloco não é o que o mesmo, o tamanho da cifra. Função OpenSSL_DECRYPT () no modo CBC. 'Esta é uma chave secreta.', 'G906M70P (IHZA5T & 5X7 (W0�31) U) �E79CIYJQ! IP2U (XT13Q6) TJ6GZ3D2WI & 0 ") 7CP5', Chr (6). CHR (200). Chr (16). 'minha chave'. Chr (3). Chr (4). Chr (192). Chr (254). 'ZYX0987 !!', 'E finalmente mais uma chave para testar aqui:', ]; $ data = [ 'UM', 'Este é um teste', 'Agora teste criptografando algo um pouco mais com 1234567890.', '$ length = mcrypt_get_block_size (mcrypt_blowfish, mcrypt_mode_cbc); $ last = ord ($ dados [strlen ($ dados) - 1]); ', 'Lorem ipsum dolor Sit AMET, consectur adipiscing elit. Donec Sit AMET Pharetra Urna. Vestibulum ante ipsum primis em faucibus orci luctus et ultrices postereere cubilia curae; Ut Fringilla, Quam sed Eleifend Eleifend, Justo Turpis Consecteter Tellus, Quis Tristique Eros Erat em Nibh. Nunc dictum neque vel diam molestie fermentum. Plentresque Dignissim Dui Quis Tortor Eleifend, Ut Maximus elit egestas. Donec Posuere Odio et Auctor Porta. Quisque Placerat condimentum maximus. Curabitur luctus dolor eget sem luctus, em Dignissim Tortor Venenatis. Mauris eget nulla nisl. ', ]; $ falhas = 0; foreach ($ dados como $ datum) { foreach ($ keys como $ key) { $ ENC = nova criptografia (mcrypt_blowfish, mcrypt_mode_cbc); $ Encrypted = $ Enc-> Encrypt ($ datum, $ key); $ DEC = new EncryptionOPenssl ('BF-CBC'); $ descriptografado = $ dec-> descriptografar ($ criptografado, $ key); if (strcmp ($ datum, $ descriptografado)! == 0) { eco "criptografia com a chave '$ key' de '$ datum' falhou. '$ descriptografado'! = '$ datum'

\ n \ n"; $ falhas; } } } if ($ falhas) { eco "$ falhas nos testes falhou.
\ n"; } outro { eco "tudo ok
\ n"; }

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3