Много лет назад я создал на C # программу для Windows, которая "шифрует" текстовые файлы с помощью (как я думал, был) caeser chipher.
В то время я хотел больше символов, чем просто A-Z, 0-9, и сделал это возможным, но никогда не думал о реальной теории, стоящей за этим.
Глядя на некоторые файлы и сравнивая их с на этом сайте , кажется, что UTF-8 смещается.
Я запустил виртуальную машину Windows (потому что сейчас использую Linux) и набрал: abcdefghijklmnopqrstuvwxyz
Сгенерирован текст, который выглядит следующим образом в шестнадцатеричном формате (сдвинуто 15 раз):
70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f c280 c281 c282 c283 c284 c285 c286 c287 c288 c289
Как мне сместить шестнадцатеричные числа, чтобы они выглядели так?
61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a
Или есть какие-то более простые / лучшие способы сделать это?
UPDATE
Я использую Python 3.5.3, и этот код у меня есть:
import sys
arguments = sys.argv[1:]
file = ""
for arg in arguments:
if arg[0] != "-":
file = arg
lines = []
with open(file) as f:
lines = f.readlines()
for line in lines:
result = 0
for value in list(line):
#value = "0x"+value
temp=value.encode('utf-8').hex()
temp+=15
if(temp>0x7a):
temp-=0x7a
elif(temp<=0):
temp+=0x7a
#result = result + temp
print (result)
К сожалению, на данный момент у меня нет исходного кода на C #. Я могу попытаться найти это