壓縮包使用中文密碼帶來的問題


問題與成因

中文windows系統的中文編碼多會使用GBK,而不是UTF-8。因此設置壓縮密碼時,密碼很可能采用了GBK編碼。在只使用UTF-8編碼的操作系統(比如英文windows,linux等)上,即使輸入了同樣的中文內容也會提示密碼錯誤。

據個例子,四個漢字“中文密碼”編碼為GBK后的16進制表示:
0xD6D0 0xCEC4 0xC3DC 0xC2EB
編碼為UTF-8后的16進制表示:
0x4E2D 0x6587 0x5BC6 0x7801;

內容不相同。因此提示了密碼錯誤。

解決方案

假設我們使用的OS是UTF-8的,那么就嘗試將中文密碼編碼到GBK(可能亂碼,但不影響使用)。

linux iconv

在linux機器上可以這樣解決

echo -n "中文密碼" | iconv -f utf-8 -t gbk >gbk_code.txt

執行后,在UTF-8系統系查看gbk_code.txt:

沒錯,就是亂碼的。只要直接復制亂碼,粘貼進密碼框就能解密。

Python

在windows上可以安裝python3,然后這樣解決:

s="中文密碼"
with open('gbk_code.txt', 'wb') as f:
    f.write(s.encode('gbk'))

直接復制亂碼,粘貼進密碼框就能解密。

Notepad++

Notepad++據說能夠轉換編碼,沒有親自嘗試過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM