Мазмуну:
- Жабдуулар
- 1 -кадам: өзгөрмөлөрдү жарыялоо жана киргизүү
- 2 -кадам: Жаңы алфавитти түзүү
- 3 -кадам: Кабарды жылдыруу
- 4 -кадам: Кошумча
Video: Pythonдогу Цезарь шифр программасы: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Цезардык шифр - байыркы жана кеңири колдонулган шифр, ал шифрлөөгө жана чечмеленүүгө оңой. Бул таптакыр жаңы алфавитти түзүү үчүн алфавит тамгаларын которуу менен иштейт (ABCDEF 4 тамганы алмаштырып, EFGHIJ болуп калат).
Цезарь шифрлери бул жерде эң коопсуз шифрлер эмес, бирок жашыруун эскертүүлөрдү берүү же сырсөздөрдү бир аз күчтүү кылуу сыяктуу кичинекей иштер үчүн жакшы. Кодду чечмелөө чынында оңой, бирок эгерде сизде атайын алфавит жатталбаса, аны шифрлөө түйшүктүү болушу мүмкүн.
Бул процессти жеңилдетүү үчүн биз компьютерлердин күчүн, тагыраак айтканда Python программалоо тилин колдоно алабыз.
Бул Instructable сизге буйругуңуз боюнча билдирүүлөрдү шифрге айландыруучу программаны кантип түзүүнү көрсөтөт.
Жабдуулар
Сизге бир гана Python тилмечи керек: IDLE, Pycharm жана Thonny - бул жакшы, бекер варианттар (мен Pycharm колдонгом)
Python боюнча негизги билим
1 -кадам: өзгөрмөлөрдү жарыялоо жана киргизүү
Алфавиттин, билдирүүнүн, жылыштын ж.б саптарын (тексттерин) чынында сактоо үчүн, биз өзгөрмөлөрдү колдонушубуз керек. Биз "алфавит", "partialOne", "partialTwo" жана "newAlphabet" өзгөрмөлөрүн жарыялоо менен баштайбыз. Мен Camel Caseдеги өзгөрмөлөрдүн аттарын кодума жаздым (биринчи сөз - кичине жана экинчи чоң тамга), бирок сиз аны коддун калган бөлүгүндө өзгөртүүнү унутпасаңыз, каалаган жол менен жаза аласыз.. Алфавиттин өзгөрмөсү "abcdefghijklmnopqrstuvwxyz" маанисине ээ. Башка өзгөрмөлөрдүн баары "" деп коюлган, бул бош сап, анткени бизде алардын мааниси жок.
Бул эмне кылып жатат, биз жарым -жартылай системаны орнотуп жатабыз, аны биз чынында эле жылышуу үчүн колдонобуз. Бул кийинки кадамда түшүндүрүлөт.
Ушундан кийин, биз билдирүүнү алып, колдонуучудан маанини которушубуз керек. Бул үчүн биз киргизүү функциясын колдонобуз. Коддун бул бөлүгү колдонуучудан кабарды жана номерди алфавитти которуусун сурайт.
КОД:
алфавит = "abcdefghijklmnopqrstuvwxyz"
partialOne = ""
partialTwo = ""
newAlphabet = ""
message = input ("Которгусу келген билдирүүнү киргизиңиз:").lower ()
key = int (киргизүү ("Өткөргүңүз келген номерди киргизиңиз:")))
2 -кадам: Жаңы алфавитти түзүү
Эми жылдырылган алфавитти түзүү. Бул үчүн биз жарым -жартылай системаны колдонобуз. Жарым -жартылай система - бул жерде компьютер алфавитти эки бөлүккө бөлөт (бөлүктөрдү айтуунун кооз ыкмасы). Биринчи бөлүк, бирок сиз программага өтүүнү айттыңыз, ал эми экинчиси - калган. Компьютер бөлүктөрүн алмаштырат. Код дал ушундай кылып жатат, эгер биринчи нөөмөт менен бирге, эгерде жылыш 0 болсо, анда жаңы алфавит менен эски алфавит бирдей, анткени сиз эч нерсени алмаштырбайсыз.
Мисалы:
Ырааттуулугу - 123456789
Жарым -жартылай - 123; Экинчи бөлүк - 456789
Жаңы ырааттуулук - 456789123
КОД:
эгер ачкыч == 0:
newAlphabet = алфавит
elif key> 0:
partialOne = алфавит [: ачкыч]
partialTwo = алфавит [ачкыч:]
newAlphabet = partialTwo + partialOne
башка:
partialOne = алфавит [:(26 + баскычы)]
partialTwo = алфавит [(26 + баскыч):]
newAlphabet = partialTwo + partialOne
3 -кадам: Кабарды жылдыруу
Азыр бизде алфавит жана жаңы алфавит бар. Кабарды кодго которуу гана калды.
Биринчиден, биз жаңы өзгөрмөнү коюп, аны "шифрленген" деп атап, "" деп койдук. Андан кийин биз чындап эле татаал фор-циклди жазабыз, ал билдирүүдөгү ар бир тамганы текшерет жана аны жаңы тамгага которот. Ал натыйжаны чыгарат жана ал жерде сизде, ийгиликтүү конверсияланган код!
КОД:
encrypted = "" "message_index" диапазонунда (0, len (message)):
эгер билдирүү [message_index] == "":
шифрленген+= ""
диапазондогу alpha_index үчүн (0, len (newAlphabet)):
эгер билдирүү [message_index] == алфавит [alpha_index]:
шифрленген+= жаңыАлфавит [алфавит_индикси]
басып чыгаруу (шифрленген)
4 -кадам: Кошумча
Код файлы тиркелет.
Сунушталууда:
Pythonдогу SHT25 менен Raspberry Pi колдонуп жаткан нымдуулукту жана температураны байкоочу: 6 кадам
Pythonдогу SHT25 менен Raspberry Pi колдонгон нымдуулукту жана температураны байкоочу: Raspberry Pi үчүн энтузиаст болуп, биз аны менен дагы бир нече укмуштуу эксперименттерди ойлодук. жана SHT25, Хумиди
Pythonдогу BME280 менен Raspberry Pi колдонулган аба ырайы станциясы: 6 кадам
Аба ырайы станциясы Raspberry Pi менен BME280ди Pythonдо колдонсо болот: аба ырайы-бул глобалдык жылуулук жана климаттын өзгөрүшү менен бирге глобалдык аба ырайы биздин дүйнөдө туруксуз болуп баратат. табигый кырсыктар (кургакчылык, экстремалдык
Como Crear программасынын программасы Python графикалык графигинин функционалдык программасы: Sacue Unere Especifica Debajo De Ella: 6 Steps
Como Crear Un Programa De Python Que Grafique Cualquier Función Y Saque Un Área Especifica Debajo De Ella: Бул программанын жаңы функциялары сизди кызыктырат жана жок кылат, жана графикалык карталарды аныктоо үчүн атайын программаны колдонуңуз
Pythonдогу Netcat: 6 кадам
Pythonдогу Netcat: netcat деген эмне? Netcat үчүн колдонмо баракчасында мындай деп айтылат: " nc (же netcat) утилита TCP, UDP же UNIX-домендик розеткаларды камтыган күн астында дээрлик бардык нерселер үчүн колдонулат. Ал TCP туташууларын ача алат, UDP пакеттерин жөнөтөт, arb аркылуу уга алат
Билл шифр пирамида спикери: 9 кадам (сүрөттөр менен)
Билл шифр пирамида спикери: Бул долбоор Gravity Falls шоусунан Билл Сифердин пирамида дизайны менен шыктандырылган жана Дизайн технологиялары классы үчүн түзүлгөн. Учурда продукт бүтө элек жана бул өндүрүш планы катары кызмат кылат. Барак качан жаңыртылат