「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > McRyptからOpenSSLに暗号化を移行し、OpenSSLを使用してMcRyptで暗号化されたデータを復号化できますか?

McRyptからOpenSSLに暗号化を移行し、OpenSSLを使用してMcRyptで暗号化されたデータを復号化できますか?

2025-06-15に投稿されました
ブラウズ:401

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

暗号化ライブラリをMcRyptからOpenSSL

にアップグレードして、暗号化ライブラリをMcRyptからOpenSLにアップグレードできますか? OpenSSLでは、McRyptで暗号化されたデータを復号化することは可能ですか? 2つの異なる投稿は矛盾する情報を提供します。もしそうなら、どのように? OpenSSLを使用してMcRyptで暗号化されたデータを復号化することは可能です。 $ salt = substr($ data、0、128); $ enc = substr($ data、128、-64); $ mac = substr($ data、-64); list($ cipherkey、$ mackey、$ iv)= $ this-> getKeys($ sal、$ key); if($ mac!== hash_hmac( 'sha512'、$ enc、$ mackey、true)){ falseを返します。 } $ dec = openssl_decrypt($ enc、$ this-> cipher、$ cipherkey、openssl_raw_data、$ iv); $ decを返します。 }

追加メモ:

openssl_decrypt()関数は、IVパラメーターが使用されるの長さと同じ長さの場合と同じ長さの場合と同じ長さと同じ長さと同じ長さを必要とするIVパラメーターが必要です。 openssl_decrypt()関数CBCモード。 「これは秘密の鍵です。」 'g906m70p(ihza5t&5x7(w0�31)u)�e79ciyjq!ip2u(xt13q6)tj6gz3d2wi&0 ")7cp5'、 CHR(6)。 CHR(200)。 CHR(16)。 「私の鍵」。 CHR(3)。 CHR(4)。 CHR(192)。 CHR(254)。 'zyx0987 !!'、 'そして最後に、ここでテストするもう1つの鍵:'、 ]; $ data = [ 「A」、 「これはテストです」、 「今、1234567890で少し長く何かを暗号化します。」 '$ length = mcrypt_get_block_size(mcrypt_blowfish、mcrypt_mode_cbc); $ last = ord($ data [strlen($ data)-1]); '、 'lorem ipsum dolor sit amet、conectetur adipiscing elit。 donec sit amet pharetra urna。 faucibus orci luctus et ultrices posuere cubilia curaeの前庭ante ipsum primis; Ut Fringilla、Quam Sed Eleifend Eleifend、Justo Turpis Conectetur Tellus、Quis Tristique Eros erat at Nibh。 nunc dictum neque vel diam molestie fermentum。 Pellentessque Dignissim dui Quis Tortor Eleifend、Ut Maximus Elit Egestas。 Donec Posuere odio et auctor porta。 Quisque Placerat Condimentum Maximimus。 Curabitur Luctus Dolor Eget Sem Luctus、Dignissim Tortor Venenatis。 Mauris Eget Nulla Nisl。 '、 ]; $ failures = 0; foreach($ data as $ datum){ foreach($ keys as $ key){ $ enc = new Encryption(mcrypt_blowfish、mcrypt_mode_cbc); $ necrypted = $ enc-> encrypt($ datum、$ key); $ dec = new encryptionopenssl( 'bf-cbc'); $ decrypted = $ dec-> decrypt($ necrypted、$ key); if(strcmp($ datum、$ decrypted)!== 0){ echo "$ datum 'のキー「$ key」を使用したエコーは失敗しました。 $障害; } } } if($ failures){ echo "$障害テストが失敗しました。
\ n"; } それ以外 { エコー "すべて大丈夫
\ n"; }

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3