Как я могу сделать программу шифрования и дешифрования на python с моей собственной криптографией? - PullRequest
0 голосов
/ 05 мая 2018

криптография выглядит следующим образом:

a = "v07u4tLKinfa"
b = "zz45tTn8u4o0"
c = "W46tEr10d01z"
d = "5aPSCr36quA7"
e = "Zg6pPrg17t15"
f = "Po84cr3Ud25M"
g = "L0l1crXtOO11"
h = "7G1CaZ2wBg9f"
i = "Z1Yd84we71y3"
j = "LL6TRe0yR4tj"
k = "kt426ug76Vz3"
l = "26IzOZyrXCt4"
m = "Z3uj09HJ6Iou"
n = "0d2Wna13lERT"
o = "N935efQef3JH"
p = "7j43Ghnf6R4o"
q = "dF13Rw9nX6i8"
r = "DOu3fw073r81"
s = "3C0w23rTg5Ij"
t = "TE436nyWi5ee"
u = "58Ybt78n3e06"
v = "39j8rH9TYrcO"
w = "0NAtO48veQM7"
x = "K2uC2tgEVBn4"
y = "9nRm03iH8ECn"
z = "8brYHI304ld2"

Я хочу, чтобы программа зашифровывала обычный текст, например (" this "), изменяя каждую букву.

Пример: (" this ") изменяется на (" TE436nyWi5ee7G1CaZ2wBg9fZ1Yd84we71y33C0w23rTg5Ij ")

примечание: Я также хочу, чтобы текст вводился пользователем.

1 Ответ

0 голосов
/ 05 мая 2018

Сначала вы поместите свое отображение в словарь:

cipher = {
    'a': "v07u4tLKinfa",
    'b': "zz45tTn8u4o0",
    'c': "W46tEr10d01z",
    'd': "5aPSCr36quA7",

    'e': "Zg6pPrg17t15",
    'f': "Po84cr3Ud25M",
    'g': "L0l1crXtOO11",
    'h': "7G1CaZ2wBg9f",

    'i': "Z1Yd84we71y3",
    'j': "LL6TRe0yR4tj",
    'k': "kt426ug76Vz3",
    'l': "26IzOZyrXCt4",

    'm': "Z3uj09HJ6Iou",
    'n': "0d2Wna13lERT",
    'o': "N935efQef3JH",
    'p': "7j43Ghnf6R4o",

    'q': "dF13Rw9nX6i8",
    'r': "DOu3fw073r81",
    's': "3C0w23rTg5Ij",
    't': "TE436nyWi5ee",

    'u': "58Ybt78n3e06",
    'v': "39j8rH9TYrcO",
    'w': "0NAtO48veQM7",
    'x': "K2uC2tgEVBn4",

    'y': "9nRm03iH8ECn",
    'z': "8brYHI304ld2"
}

Затем вы можете «зашифровать» строку следующим образом:

>>> s = 'this'
>>> ' '.join(cipher[c] for c in s)
'TE436nyWi5ee 7G1CaZ2wBg9f Z1Yd84we71y3 3C0w23rTg5Ij'

Чтобы расшифровать, создайте обратное отображение cipher:

reverse_cipher = {v: k for k, v in cipher.items()}

и "расшифровать" таким образом:

>>> sc = 'TE436nyWi5ee 7G1CaZ2wBg9f Z1Yd84we71y3 3C0w23rTg5Ij'
>>> ''.join(reverse_cipher[x] for x in sc.split())
'this'

После того, как вы закончите этот учебный эксперимент, если вы действительно хотите сделать шифрование, никогда не делайте это самостоятельно и используйте существующую библиотеку.

Этот подстановочный шифр может быть очень легко взломан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...