欢迎光临散文网 会员登陆 & 注册

论字节集加&密 #3 字节集的修改

2020-03-15 21:53 作者:雾削木FHZ  | 我要投稿

    上期我们讲了几种常见的格式与字节集的关系,那么这期主要讲一下修改字节集。

字节集的组成方式为: {0-255,0-255,0-255} 这样的以为数组组成方式,如果单个字节成员不在0-255这个范围,那么这个字节在易语言的字节集中将会自动转化为 {0}  ,正式这样我们在使用字节集传输数据的时候要加以小心,例如:你要做一个发送坐标的字节集包,那么根据常识,这个数据的范围肯定是要大于255,当然小于255的游戏也有,这时候如果非要用字节集传输这种前提不知道范围坐标数据可以尝试将文本型的坐标数据再转换为字节集,也可以使用两个字节甚至更多的字节来存储这个单位的坐标数据,那么根据UP的经验来讲,如果使用的是第二种方法,那么在解析字节集包时候会有所费尽。

    既然单个字节集的成员是0-255,使用多个成员分开存储那么可以达到的范围也会更多,就比如第二章讲到的逢256进1,那么可以存储的长度就会更多,当然也可以使用拆解的方式,这里涉及到字符串的分解,假设我们将一个整数型的坐标数据 6666 转换为文本型 就是 "6666" 这时候我们从中间拆解开,就会得到 "66" "66" 两个文本串,这时候再将他们已字节的方式赋值到字节集的1、2位置中,就可以得到这个字节集 {66,66} 这样下来反过来解析也会很简单,首先将字节集的1、2都读取出来,然后整数转文本,再文本拼合得到“6666” 最后将其文本型数据转换为整数型数据,就可以得到 坐标数据 6666 ,那么在这种方式下,UP觉得是挺有效和简单的,如果使用第一种方法的话那么加密将得不到保障,被截包的话数据直接就漏出来了,第一种的方法很简单,就是将文本型直接到字节集,这样字节集到文本也会转换成原本的文本数据,在将这个文本数据解析,便能得到发送的数据,例如UP将 “128,128” 这个字符串转换为字节集之后,会得到 {49,50,44,49,50,56} 这样一个字符串,在接收中,我们将其到文本便能得到 “128,128” 这时候我们将数据分解一下,就能得到坐标 X=128 Y=128;

    那么以上是一种简单的常用在数据传输与保存当中的使用,修改字节集的方式其实也非常简单,例如有一串字节集:{128,45,45,45} ;

    我们只需要通过第一期的知识,直接指定其内部成员,并将其赋值,便可以得到修改之后的字节集:字节集 [1] = 字节集 [1] + 2;

字节集 [2] = 字节集 [2] * 2;

字节集 [3] = 字节集 [3] * 2;

字节集 [4] = 字节集 [4] + 15;

这样的运算之后我们的字节集便会变为:{130,90,90,60}

反过来我们只需要将成员1-2,成员2/2,成员3/2,成员4-15,便可以得到原本的数据,这就是字节集的修改,那么通过数学运算,我们只需要将每一位的成员数据保持在0-255便能完美的修改此字节集,当然数学运算的好处主要体现在公式运算上,假设,你使用了某公司的加密技术,而此公司的加密公式被黑客泄露了出来,那么这个加密方式变会有破解方式,所以,最安全的方法就是将其公式不泄露,而且尽可能避免汇编破解,一般很多加密方式都会让其提供密码,作为加密的保障,那么这个密码就会被用到与字节集修改中的公式当中,在此公式不安全的前提下,密码就是最后一道防线,如果你将密码设置的过于简单,那么过不了几天,你加密的东西便会出现BUG,一般加密秘钥可以通过非对称的RSA来随机生成一个,当然如果密码可以设置的是字符串,那么尽量设置中文,而且长度要大于6,这样逆运算的难度便会有新的高度。

论字节集加&密 #3 字节集的修改的评论 (共 条)

分享到微博请遵守国家法律