0
我已經編寫了以下類來測試不同的加密方案。但是,我在通過不同的加密方案實例化對象時遇到了問題。有人能指出一些沒有意義的東西,我不趕上atm嗎?我不確定它爲什麼不起作用。它給出了一個TypeError: encrypt() takes exactly 3 arguments (2 given)
,但它確實有自我傳遞,所以我不知道如何解決它在其他人的基礎上。實例和類:當x-1給出時需要x個參數
class AXU:
def __init__(self, sec_param):
self.sec_param = sec_param
def getHash(self):
# sample a, b and return hash function
a = random.randrange(self.sec_param)
b = random.randrange(self.sec_param)
return lambda x : a*x+b % sec_param
class BC(object):
def __init__(self, sec_param):
# generate a key
self.sec_param = sec_param
def encrypt(self, message, key):
#encrypt with AES?
cipher = AES.new(key, MODE_CFB, sec_param)
msg = iv + cipher.encrypt(message)
return msg
class tBC(object):
def __init__(self, sec_param):
self.sec_param = sec_param
def encrypt(self, tweak, message):
#pass
return AES.new(message, tweak)
class Trivial(tBC):
def __init__(self):
self.bcs = {}
def encrypt(self, tweak, message):
if tweak not in self.bcs.keys():
bc = BC()
self.bcs[tweak] = bc
return self.bcs[tweak].encrypt(message)
class Our(tBC):
def __init__(self, sec_param):
self.bc1 = BC(sec_param)
self.bc2 = BC(sec_param)
self.bc3 = BC(sec_param)
self.bc4 = BC(sec_param)
# encryption over GF field
def encrypt(self, tweak, message):
return self.bc1.encrypt(self.bc2.encrypt(tweak) * self.bc3.encrypt(message) + self.bc4.encrypt(tweak))
你究竟在哪裏傳遞了兩個參數(除了'self')呢?所有'encrypt'調用都有一個參數。 –
請確保包含* full * traceback。我可以猜出錯誤發生的位置,但是完整的追溯會告訴我們一定的錯誤,並確保我沒有錯過其他情況。 –