簡體   English   中英

我正在做密碼挑戰 5。嘗試在 kali linux 中運行此腳本時,第 5 行出現語法錯誤

[英]I'm doing the cryptopals challenge 5. I'm getting a syntax error in line 5 when trying to run this script in kali linux

編輯:我在 OSX 上的 IDLE 中運行腳本,它運行順利,但是當我嘗試在 kali linux 上的 gedit 中運行它時,我仍然遇到語法錯誤。 有什么猜測嗎?

這是我得到的語法錯誤:

./challenge5.py: line5: 意外標記附近的語法錯誤 (

./challenge5.py: defencodeRepeatingKeyXor(s, key):

這是我正在運行的完整腳本:

import binascii

def encodeRepeatingKeyXor(s, key):
    return bytes([s[i] ^ key[i % len(key)] for i in range(len(s))])

x = b'''Burning 'em, if you ain't quick and nimble
I go crazy when I hear a cymbal'''
key = b'ICE'
encodedExpectedY = '0b3637272a2b2e63622c2e69692a23693a2a3c6324202d623d63343c2a26226324272765272a282b2f20430a652e2c652a3124333a653e2b2027630c692b20283165286326302e27282f'
expectedY = binascii.unhexlify(encodedExpectedY)

if __name__ == '__main__':
    y = encodeRepeatingKeyXor(x, key)
    encodedY = binascii.hexlify(y).decode('ascii')
    print(encodedY)
    print(encodedExpectedY)
    if y != expectedY:
        raise Exception(encodedY + ' != ' + encodedExpectedY)

任何和所有的幫助表示贊賞。 謝謝!

編輯:我在 OSX 上的 IDLE 中運行腳本,它運行順利,但是當我嘗試在 kali linux 上的 gedit 中運行它時,我仍然遇到語法錯誤。 有什么猜測嗎?

bytes() 和 b'...' 不像你期望的那樣工作。 這是因為它們是不可變的。 如果你用字節數組重構你的代碼,它可以工作:

import binascii


def encodeRepeatingKeyXor(s, key):
    return bytearray([s[i] ^ key[i % len(key)] for i in range(len(s))])



x = b'''Burning 'em, if you ain't quick and nimble
I go crazy when I hear a cymbal'''
key = b'ICE'
encodedExpectedY = '0b3637272a2b2e63622c2e69692a23693a2a3c6324202d623d63343c2a26226324272765272a282b2f20430a652e2c652a3124333a653e2b2027630c692b20283165286326302e27282f'
expectedY = binascii.unhexlify(encodedExpectedY)

if __name__ == '__main__':
    y = encodeRepeatingKeyXor(bytearray(x), bytearray(key))
    encodedY = binascii.hexlify(y).decode('ascii')
    print(encodedY)
    print(encodedExpectedY)
    if y != expectedY:
        raise Exception(encodedY + ' != ' + encodedExpectedY)

看看這個問題以進一步閱讀..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM