Агуулгын хүснэгт:

Python дахь Цезарь шифрийн хөтөлбөр: 4 алхам
Python дахь Цезарь шифрийн хөтөлбөр: 4 алхам

Видео: Python дахь Цезарь шифрийн хөтөлбөр: 4 алхам

Видео: Python дахь Цезарь шифрийн хөтөлбөр: 4 алхам
Видео: Жареный КРОКОДИЛ. Уличная еда Тайланда. Рынок Banzaan. Пхукет. Патонг. Цены. 2024, Арваннэгдүгээр
Anonim
Python дахь Цезарь шифрийн програм
Python дахь Цезарь шифрийн програм

Цезарь шифр бол эртний бөгөөд өргөн хэрэглэгддэг шифр бөгөөд шифрлэх, тайлахад хялбар байдаг. Энэ нь цагаан толгойн үсгийг сольж цоо шинэ цагаан толгой үүсгэх замаар ажилладаг (ABCDEF нь 4 үсгийг шилжүүлж, EFGHIJ болно).

Цезарийн шифрүүд нь хамгийн найдвартай шифр биш боловч нууц тэмдэглэл дамжуулах эсвэл нууц үгээ арай хүчтэй болгох гэх мэт жижиг ажлуудад сайн байдаг. Кодыг тайлах нь үнэхээр хялбар боловч хэрэв та тусгай үсгийг цээжлээгүй бол шифрлэх нь төвөгтэй байж магадгүй юм.

Энэ үйл явцыг хөнгөвчлөхийн тулд бид компьютерын хүчийг, ялангуяа Python програмчлалын хэлийг ашиглаж болно.

Энэхүү зааварчилгаа нь таны тушаалаар мессежийг шифр болгон хөрвүүлэх програмыг хэрхэн бий болгохыг харуулах болно.

Хангамж

Танд хэрэгтэй бүх зүйл бол 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 түлхүүр> 0:

partialOne = цагаан толгой [: түлхүүр]

partialTwo = цагаан толгой [түлхүүр:]

newAlphabet = partialTwo + partialOne

өөр:

partialOne = цагаан толгой [:(26 + түлхүүр)]

partialTwo = цагаан толгой [(26 + түлхүүр):]

newAlphabet = partialTwo + partialOne

Алхам 3: Мессежийг шилжүүлэх

Мессежийг шилжүүлэх
Мессежийг шилжүүлэх

Одоо бид цагаан толгой, шинэ цагаан толгойтой боллоо. Зурвасыг код руу шилжүүлэх л үлдэж байна.

Нэгдүгээрт, бид шинэ хувьсагч тавьж, үүнийг "шифрлэгдсэн" гэж нэрлээд "" болгож тохируулна уу. Дараа нь бид зурвас дахь үсэг бүрийг шалгаж, шинэ үсэг рүү шилжүүлдэг үнэхээр төвөгтэй for-loop бичдэг. Энэ нь үр дүнг гаргадаг бөгөөд танд амжилттай хөрвүүлсэн код байна.

КОД:

encrypted = "" for message_index for range (0, len (message)):

хэрэв мессеж [message_index] == "":

шифрлэгдсэн+= ""

хувьд alph_index -ийн мужид (0, len (newAlphabet)):

хэрэв мессеж [message_index] == цагаан толгой [цагаан толгой_ индекс]:

шифрлэгдсэн+= шинэ цагаан толгой [цагаан толгойн индекс]

хэвлэх (шифрлэгдсэн)

Алхам 4: Нэмэлт

Нэмэлт
Нэмэлт
Нэмэлт
Нэмэлт

Кодын файлыг хавсаргав.

Зөвлөмж болгож буй: