如何处理linux下的CP-1252编码密码?

时间:2010-04-15 09:53:38

标签: windows linux encryption encoding passwords

我有以下问题。我需要在linux下使用由CP-1252编码的另一方提供的密码创建一个zip文件。我试过的是将此密码的编码更改为UTF-8。然后我用这个utf-8编码的密码保护了一个zipfile。但是,无法使用CP-1252编码的原始密码在Windows中解压缩该文件。

此致

戈登

2 个答案:

答案 0 :(得分:1)

使用非ASCII的任何内容(文件名或密码)处理ZIP文件时会遇到困难,最好避免使用。您应该尽一切可能将允许的密码限制为纯ASCII,这可以在任何地方使用。

每个操作系统都会将字节视为自己的系统默认编码,这可能(但不确定)在最近的Linuxen中是UTF-8,在OS X中是UTF-8,在Windows中从不是UTF-8。即使您使用cp1252中编码的非ASCII密码创建ZIP文件,它也只能在西欧Windows安装中读取。并且一些ZIP工具的行为仍然不同(例如,即使在使用UTF-8作为文件名时,nautilus zip解码器似乎也使用ISO-8859-1作为密码)。整件事情是一团糟。

可以在Linux中使用cp1252密码创建ZIP文件。您目前使用什么工具来创建密码文件?命令行zip工具只接受字节而不关心它们所处的编码,因此为了确保在键盘提示输入密码时键入的任何非ASCII字符都在cp1252中,应将终端的编码设置为cp1252。对于GNOME默认的“终端”,这可以通过终端 - >设置字符编码 - > Windows-1252完成(如果未列出,则可能必须添加/删除此编码)。

答案 1 :(得分:0)

看看7z项目,它对我有用。