看着规格书,所需要的参数还蛮多的
今天就先用 Python 来求算 Hash ID!
依据官方的说明文件:
Hash ID是透过位元运算(XOR)将四组Hash计算产出的,将A1/A2以XOR运算所得的字串,再与B1/B2以XOR运算出来的字串,二个相加後将英文转换为大写,为长度为32的字串(例: 17D8E6558DC60E702A6B57E1B9B7060D)。
在 Python 中实作起来如下:
def strToHexByte(s):
return int(s,base=16)
A1 = "4D9709D699CA40EE"
A2 = "5A4FEF83140C4E9E"
B1 = "BC74301945134CB4"
B2 = "961F67F8FCA44AB9"
# 透过 ^ 进行 XOR 计算
XOR1 = strToHexByte(A1) ^ strToHexByte(A2)
XOR2 = strToHexByte(B1) ^ strToHexByte(B2)
# 将 XOR 的结果(数字) 转成 hex
hex_XOR1 = hex(XOR1)
hex_XOR2 = hex(XOR2)
# 将字串合并後,再大写
hash_id = ( hex_XOR1 + hex_XOR2 ).upper()
结果是:
"0X17D8E6558DC60E700X2A6B57E1B9B7060D"
而官方示例中:
"17D8E6558DC60E702A6B57E1B9B7060D"
可以发现多出了"0X"的前置字元,上网查了一下,这是 python 的特性;
官方的 PHP 示例中是不会有这个状况发生。
所以此处要将上方的程序码最後一段调整为
# 透过 Python 的 字串[开始位置:结束位置],
# 因为我们不要前面2个符号,所以用 [2:]的方式来截断文字
hash_id = ( hex_XOR1[2:] + hex_XOR2[2:] ).upper()
这样得到的结果就会与官方示范完全相同。
天啊! 第2天而已,还有一些参数需要进行类似的计算…
希望能快点进入实战!
昨天件绍了看们狗的,今天就来看看如何使用看门狗 独立看门狗一般用来检测和解决由程序引起的故障,比如一...
建议搭配之前的 sequence diagram 一起服用! Dry Initializer 在进到...
缘由: WKWebkit是APP开发中非常常用的元件,但常常会有一些不是很顺利的疑难杂症, 只能一直...
这一篇,我想再参考官网的攻略写一篇, 不过内容多增加了一些程序上的处理,以及过拟合(Overfitt...
小弟首次分享学习心得,希望大家会喜欢~ 那我们直接进入主题吧~ 今天要学C++、C#的差异性~ 学习...