FC圣斗士星矢的密码是怎么计算出来的?
写那个答复,就是看不惯某个仿佛说了一堆,现实上底子什么都没说的“答复”。
申明:
那一份只是粗略整理,其实不包管准确性,那张表格整理完后现实上也还没停止现实测试过。表格中如“表格内容:X-Y”的项目,冒号后面为对应位。如“瞬生命”,就是“瞬生命:11-10”、“瞬生命:9-8”、“瞬生命:7-0”三段拼接而成的一个十二位数。数值类(小宇宙、生命、第七感)拼接后视做BCD码。部门从密码中读取并写入内存的数值意义不明,暂时标识表记标帜为“未知”字母转二进造数流程:每个字母第一行第一列为0b000000,第一行第二列为0b000001,从左往右再从上到下递增曲到0b222221。字母一共有66个,所以最初的两个字母需要用0b1000000和0b1000001暗示,因为处置中可认为只处置低6位,姑且忽略最初那两个。异或校验位所在位置为推测,因为只阐发了源法式的密码验证法式,没有阐发密码生成法式。每个招式的所属按照颜色分类,但是统一分类内可能有错(因为没有过多的时间去验证每个招式详细的对应)。密码处置流程:
法式先判断能否输入了31个字母,若无则提醒密码错误。法式判断能否输入的全数是统一个字母(好比“啊啊啊啊……”如许),如有则提醒密码错误。法式对31个字母依次异或,若成果非0则提醒密码错误。要实现密码异或成果为0,推测是在生成时将异或校验位先填入0,再对31个字母依次异或,再将成果(那个成果往往非0)填入异或校验位。法式读取取反校验的值,设值为X,则第X个字母到第X+10个字母对应的6位二进造数需要停止取反处置。法式将31个字母(现实上补上了一个空字母,共32个)停止拼合,变成24个字节(32*6=24*8)。法式从那24个字节中读取需要的数据放入游戏中现实读取的内存中,读取中会判断每个字节能否合法(判断体例:高4位小于等于9,低4位小于等于A),若某一位不合法例提醒密码错误。密码拆入完成,进入游戏。Tags: