相同的压缩密码,会不会因为计算机编码技术以及 unicode 代码点的变更,导致未来解不开压缩包?

查看 128|回复 9
作者:bler   
unicode 给世界上所有的语言字符编号,编码方式决定了二进制的序列,hash 函数通过二进制生成散列值,
那么哪天操作系统不采用这种编码方式了,编码出的二进制序列不同,那么散列值也不一样了,那不就解不开压缩报了?
比如中文”我“,使用 utf8 和 GBK 编码出的二进制序列是不一样的,压缩软件是如何判定输入的字符的编码方式的,
是使用操作系统的编码方式吗
不知道描述的对不对,有对编码熟悉的大佬说说吗

编码, 二进制, 散列值, 压缩

jiangwei2222   
压缩和编码是两码事,编码这种东西也只可能出现新的,不可能改老的。
mcfog   
能在短短几行字里聊出那么多认知错误也是不简单
lilei2023   
@mcfog 哈哈!
bler
OP
  
@mcfog 大佬详细说说,就是不懂才问
AoEiuV020JP   
换新的编码肯定会有新的名字,不可能出出个新的 unicode 完全取代现有的 unicode 然后还叫 unicode ,
软件判定或者说计算肯定是基于编码后的二进制内容,不管是什么编码方式不管明文是什么,只要编码后二进制是对的就能解,
lambdaq   
@bler 你没搞懂的只有一个点。。。unicode 不是一个编码,是一系列编码的统称。。所以 unicode 一般都要先声明自己是哪一套编码。。。
eGlhb2Jhb2Jhbw   
除了上边说的,根据你提到压缩包,以及解压密码,我推测你说的是文件解压缩,文件解压缩和文件内容和编码没太大关系,是在“文件”这个层面上进行解压缩的。
thinkershare   
1. Unicode 字符集: 每个字符对应的码点不会变化(只会添加新的 Code)
2. UTF-8/16/32: 是存储方案(编码方案),也不会变化,只会添加对新的 Unicode 字符集版本的支持。
3. 压缩软件没有办法知道用的什么格式,要不再元数据携带,要不最终用户告诉它使用的什么编码,要不靠猜测,要不靠诱探。
PS: 各个编码方案通过编码表是可以相互转换的,但是很多转换是不可行的,例如 ASCII 的字符集就很小,没法包容 UTF-8 的所有有效字符集。
e3c78a97e0f8   
同样的文字用 Unicode 的确可以有多种表示法,这个在中文里好像很难出现,但是非中文非英文有很多情况
所以一般系统的密码都限定了字符集
您需要登录后才可以回帖 登录 | 立即注册

返回顶部