亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Unix 格式的 PHP DES ECB

Unix 格式的 PHP DES ECB

PHP
呼啦一陣風 2023-04-21 17:29:31
我正在使用一個應用程序來解密使用 DEC ECB 加密并具有 8 個字符密鑰的文本配置文件。我能夠使用 MCRYPT 生成與在https://www.tools4noobs.com/上測試時匹配的加密結果。mcrypt_encrypt(MCRYPT_DES, $key, $text, MCRYPT_MODE_ECB, $iv)我相信我的編碼有問題。當我在記事本中打開我的加密結果時,我看到了加密的字符串(與我在使用 tools4noobs.com 工具時得到的相匹配。當我對我正在使用的應用程序中的示例加密文件執行相同操作時,我得到了看起來的東西像漢字。剽?侱鮡????勣??竐休當我在 Notepad++ 中查看時,我得到一個序列,它不再包含中文字符,看起來更像是我生成的加密文件,但仍然不完全匹配。這兩個文件都是 ANSI。我的是 Windows (CR LF) 行格式的單行,要匹配的示例是 Unix (LF)。}R?&±O????ü?‰4?R ???DzA2??by??1g#—b?f?!ù似乎不僅僅是我的行格式是錯誤的。任何建議或方向將不勝感激。更新 1 我在評論中看到了對更好示例的請求。在 Notepad++ 中比較結果時我應該得到這個,用目標軟件加密的示例數據.我得到的是這個,相同的數據通過我的 PHP 使用相同的密鑰加密  <?php   $iv_size = mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_ECB);   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);   $key = "12345678";   $text = file_get_contents('test.cfg');   //echo $text;   $crypttext = mcrypt_encrypt(MCRYPT_DES, $key, $text, MCRYPT_MODE_ECB, $iv);   echo $crypttext;   file_put_contents('test.enc', $crypttext);   echo "ENCRYPTION COMPLETE"; ?>更新 2$key = "12345678";$文本[Tone1]Atonelength = 9Btonelength = 1Description = ABC Rescuerecord_delay = 1.5ignore_after = 5更新 3經過一些研究,我相信我的問題與文件編碼和/或換行符有關。我試圖匹配的輸出文件是在 UNIX LF 中,我的嘗試是 WINDOWS CR LF。目標類型也是兩行。當我在 Notepad++ 中打開這兩個文件時,消除了類似中文的字符,我可以看到前 10 個字符是匹配的。當我嘗試使用在線工具 dectypt 時,看起來我的文件和目標文件具有相同的內容,只是間距/格式不同。所以我很接近。我現在的問題是,在使用 MCRYPT 和 file_put_contents 將輸出寫入文件時,有沒有辦法使用 LF 將輸出設置為 UNIX 編碼?
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

這個問題的解決方案歸結為填充,使 PHP 版本的密文與基于 Python 的應用程序的加密和解密能力兼容。此外,能夠使用更新的 openssl 與已棄用的 MCRYPT 來做到這一點。

加密:

$padded_data = $plaintext . str_repeat("\0",(8-(strlen($plaintext) % 8)));
$encrypted_data =  openssl_encrypt($padded_data,"DES-ECB",$key,$options=OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING);

解密:

$plaintext = openssl_decrypt($ciphertext,"DES-ECB",$key,$options=OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING);


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號