У меня есть вопрос, который просит зашифровать сообщение, используя модифицированную версию Цезаря Шифра. Уловка в том, что я должен использовать все 256 символов расширенной библиотеки ASCII. Эта часть довольно проста.
Однако, когда я запускал шифрование, длина сообщения изменилась. После отслеживания проблемы кажется, что если используется определенный сдвиг, некоторые из символов преобразуются в ASCII 127, который является символом для «удаления». Таким образом, он удаляет предыдущий символ, вместо добавления символа к сообщению.
Любые предложения о том, как обойти это, при сохранении целостности шифра?
Если это поможет Я могу написать решение либо в Python, либо в VBA.
Примечание: я также разместил это в Cryptography , и они предложили шестнадцатеричное представление, которое я рассматриваю в качестве альтернативы.
Редактировать:
Код в VBA:
bLength = 1
cText = vbNullString
fOffset = WorksheetFunction.RandBetween(-255, 255)
While bLength <= aLength
dCharacter = vbNullString
eCharacter = vbNullString
dCharacter = Mid(Cells(2, 1), bLength, 1)
If 0 > (Asc(dCharacter) + fOffset) Then
eCharacter = Chr(Asc(dCharacter) + fOffset + 255)
ElseIf 255 < (Asc(dCharacter) + fOffset) Then
eCharacter = Chr(Asc(dCharacter) + fOffset - 255)
Else
eCharacter = Chr(Asc(dCharacter) + fOffset)
End If
cText = cText + eCharacter
bLength = bLength + 1
Wend