第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Unix 格式的 PHP DES ECB

Unix 格式的 PHP DES ECB

PHP
呼啦一陣風(fēng) 2023-04-21 17:29:31
我正在使用一個(gè)應(yīng)用程序來(lái)解密使用 DEC ECB 加密并具有 8 個(gè)字符密鑰的文本配置文件。我能夠使用 MCRYPT 生成與在https://www.tools4noobs.com/上測(cè)試時(shí)匹配的加密結(jié)果。mcrypt_encrypt(MCRYPT_DES, $key, $text, MCRYPT_MODE_ECB, $iv)我相信我的編碼有問(wèn)題。當(dāng)我在記事本中打開我的加密結(jié)果時(shí),我看到了加密的字符串(與我在使用 tools4noobs.com 工具時(shí)得到的相匹配。當(dāng)我對(duì)我正在使用的應(yīng)用程序中的示例加密文件執(zhí)行相同操作時(shí),我得到了看起來(lái)的東西像漢字。剽?侱鮡????勣??竐休當(dāng)我在 Notepad++ 中查看時(shí),我得到一個(gè)序列,它不再包含中文字符,看起來(lái)更像是我生成的加密文件,但仍然不完全匹配。這兩個(gè)文件都是 ANSI。我的是 Windows (CR LF) 行格式的單行,要匹配的示例是 Unix (LF)。}R?&±O????ü?‰4?R ???DzA2??by??1g#—b?f?!ù似乎不僅僅是我的行格式是錯(cuò)誤的。任何建議或方向?qū)⒉粍俑屑?。更?1 我在評(píng)論中看到了對(duì)更好示例的請(qǐng)求。在 Notepad++ 中比較結(jié)果時(shí)我應(yīng)該得到這個(gè),用目標(biāo)軟件加密的示例數(shù)據(jù).我得到的是這個(gè),相同的數(shù)據(jù)通過(guò)我的 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經(jīng)過(guò)一些研究,我相信我的問(wèn)題與文件編碼和/或換行符有關(guān)。我試圖匹配的輸出文件是在 UNIX LF 中,我的嘗試是 WINDOWS CR LF。目標(biāo)類型也是兩行。當(dāng)我在 Notepad++ 中打開這兩個(gè)文件時(shí),消除了類似中文的字符,我可以看到前 10 個(gè)字符是匹配的。當(dāng)我嘗試使用在線工具 dectypt 時(shí),看起來(lái)我的文件和目標(biāo)文件具有相同的內(nèi)容,只是間距/格式不同。所以我很接近。我現(xiàn)在的問(wèn)題是,在使用 MCRYPT 和 file_put_contents 將輸出寫入文件時(shí),有沒(méi)有辦法使用 LF 將輸出設(shè)置為 UNIX 編碼?
查看完整描述

1 回答

?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊

這個(gè)問(wèn)題的解決方案歸結(jié)為填充,使 PHP 版本的密文與基于 Python 的應(yīng)用程序的加密和解密能力兼容。此外,能夠使用更新的 openssl 與已棄用的 MCRYPT 來(lái)做到這一點(diǎn)。

加密:

$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);


查看完整回答
反對(duì) 回復(fù) 2023-04-21
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)