【发布时间】:2012-10-10 06:30:38
【问题描述】:
嘿我又来了,无情的堆栈溢出之神。
我只是在寻找一种开始使用简单异或哈希函数的方法。由于以太网电缆已神秘地从楼上的路由器上断开(再次),我有点无法访问我常用的资源。我跑题了。
我需要做的是能够将 10 位与二进制字符串中的下 10 位折叠起来,并将 xor 它们相互折叠。所以我在想
伪代码
Raw input = (binary string or S)
Def function xor:
Find Len of s
Loop
[0:9], [10:19] = xorcheck
Loop
Xor [0:] & [10]
Return result
[0 +1:] & [10 + 1:]
Return loop to xorcheck and store the.returned result.
Variable hash ,maybe)
If second [:] return "none"
Divide Len by ten,
If true add "1000000000"
Else Add 0
Check if Len is / 10
if true print hash
Else add 0, check Len /10
基本上,它的轻量级 python 脚本将创建二进制散列。这里有一些我看过的例子,但它们做得太多了,比如输出到十六进制。我真正需要的是函数 xor 二进制字符串并输出结果以及填充整个字符串的方法,因此字符数是十的倍数。
由于我现在正在使用我的微型智能手机进行研究,因此我为质量不佳的问题道歉:'(
编辑更新
我已将 Inspector 的代码编辑为
my_text = raw_input ()
''.join(bin(ascii)[2:] for ascii in [ord(char) for char in my_text])
def myHash(binary_encoded_ascii):
answer = 0
binstr = binary_encoded_ascii + '1'
binstr += '0'*(20 - (len(bitstr) %20))
for i in range(len(binstr)/20):
s = binstr[20*i:20*(i+1)]
s1,s2 = s[:10], s[10:]
total += int(s1, 2) ^ int(s2, 2)
return total
print total
它似乎要求输入文本,但没有打印任何值。我怎样才能让它输出结果,以便我可以查看它是否真的在做任何事情。
【问题讨论】:
-
这是格式错误,我深表歉意
-
学习反引号的方法,再也不会输错!
-
输入反引号之间的代码(“`”。'1'键的左侧)
-
另外,
hash是一个相当不错的二进制哈希函数,内置于 Python :) -
我试图格式化你的伪代码。请校对