ዝርዝር ሁኔታ:

በፓይዘን ውስጥ የቄሳር ሲፈር ፕሮግራም 4 ደረጃዎች
በፓይዘን ውስጥ የቄሳር ሲፈር ፕሮግራም 4 ደረጃዎች

ቪዲዮ: በፓይዘን ውስጥ የቄሳር ሲፈር ፕሮግራም 4 ደረጃዎች

ቪዲዮ: በፓይዘን ውስጥ የቄሳር ሲፈር ፕሮግራም 4 ደረጃዎች
ቪዲዮ: TUDev's Cryptography with Python Workshop! Creating a Substitution Cipher (Caesar Cipher) 2024, ህዳር
Anonim
በፓይዘን ውስጥ የቄሳር ሲፈር ፕሮግራም
በፓይዘን ውስጥ የቄሳር ሲፈር ፕሮግራም

ቄሳር ሲፌር ኢንክሪፕት እና ዲክሪፕት ለማድረግ ቀላል የሆነ ጥንታዊ እና በሰፊው ጥቅም ላይ የዋለ ሲፈር ነው። እሱ ሙሉ በሙሉ አዲስ ፊደልን ለመፍጠር የፊደላትን ፊደላት በማሸጋገር ይሠራል (ኤቢሲዲኤፍ ከ 4 ፊደላት በላይ ሊለወጥ ይችላል እና ኤፍጂሂጂ ይሆናል)።

ቄሳር ሲፊርስ እዚያ ውስጥ በጣም ደህንነቱ የተጠበቀ ciphers አይደሉም ነገር ግን እንደ ሚስጥራዊ ማስታወሻዎች ማለፍ ወይም የይለፍ ቃላትን ትንሽ ጠንካራ ማድረግ ለአነስተኛ ተግባራት ጥሩ ናቸው። ኮዱን መለየት በጣም ቀላል ነው ፣ ግን ልዩ ፊደላትን በቃላቸው ካልያዙ አንዱን ማመስጠር አሰልቺ ሊሆን ይችላል።

ይህን ሂደት ቀላል ለማድረግ የኮምፒውተሮችን ኃይል በተለይም የፕሮግራም ቋንቋ ፓይዘን መጠቀም እንችላለን።

ይህ አስተማሪ በትእዛዝዎ ላይ መልዕክቶችን ወደ ሲፈር የሚቀይር ፕሮግራም እንዴት እንደሚፈጥሩ ያሳየዎታል።

አቅርቦቶች

የሚያስፈልግዎት የፓይዘን አስተርጓሚ ብቻ ነው - IDLE ፣ Pycharm እና Thonny አንዳንድ ጥሩ ፣ ነፃ አማራጮች (እኔ ፒቻምን ተጠቀምኩ)

የ Python መሠረታዊ እውቀት

ደረጃ 1 ተለዋዋጮችን ማወጅ እና ግብዓቶችን ማግኘት

ተለዋዋጮችን ማወጅ እና ግብዓቶችን ማግኘት
ተለዋዋጮችን ማወጅ እና ግብዓቶችን ማግኘት

የፊደሉን ፣ የመልዕክት ፣ የለውጥ ፣ ወዘተ ሕብረቁምፊ (ጽሑፍ) እሴቶችን በትክክል ለማከማቸት ተለዋዋጮችን መጠቀም አለብን። እኛ ተለዋዋጮችን ‹ፊደል› ፣ ‹ከፊል ኦኔ› ፣ ‹ከፊል ሁለት› እና ‹አዲስ ፊደል› በማወጅ እንጀምራለን። እኔ በግሌ ውስጥ የግመል መያዣ ውስጥ ተለዋዋጮችን ስም ጻፍኩ (የመጀመሪያው ቃል ንዑስ ሆሄ እና ሁለተኛ አቢይ ነው) ነገር ግን እርስዎ በሚፈልጉት መንገድ ሊጽፉት ይችላሉ ፣ በቀሪው ኮዱ ውስጥ እሱን መለወጥ እስከሚያስታውሱ ድረስ።. የፊደሉ ተለዋዋጭ “abcdefghijklmnopqrstuvwxyz” እሴት አለው። ሁሉም ሌሎች ተለዋዋጮች ወደ «» ተቀናብረዋል ፣ ይህም ገና እሴቶቻቸው ስለሌለን ባዶ ሕብረቁምፊ ነው።

ይህ የሚያደርገው ከፊል ስርዓትን ማቀናበር ነው ፣ ይህም እኛ በእርግጥ ፈረቃ ለመፍጠር የምንጠቀምበት ነው። ይህ በሚቀጥለው ደረጃ ላይ ይብራራል።

ከዚህ በኋላ መልዕክቱን ማግኘት እና ከተጠቃሚው የመቀየሪያ እሴት መለወጥ አለብን። ይህንን ለማድረግ የግብዓት ተግባሩን እንጠቀማለን። ይህ የኮዱ ክፍል ፊደሉን በለውጥ ለመቀየር ለተጠቃሚው መልእክት እና ቁጥር ይጠይቃል።

ኮድ ፦

ፊደል = "abcdefghijklmnopqrstuvwxyz"

ከፊል አንድ = ""

ከፊል ሁለት = ""

አዲስ ፊደል = ""

message = ግብዓት ("እባክዎን ሊተረጉሙት የሚፈልጉትን መልእክት ያስገቡ")። ዝቅተኛ ()

key = int (ግቤት ("እባክህ በምትለዋወጥበት ቁጥር አስገባ:"))

ደረጃ 2 - አዲሱን ፊደል መፍጠር

አዲሱን ፊደል በመፍጠር ላይ
አዲሱን ፊደል በመፍጠር ላይ

አሁን የተቀየረውን ፊደል ለመፍጠር። ይህንን ለማድረግ ከፊል ስርዓቱን እንጠቀማለን። ከፊል ሲስተሙ ኮምፒዩተሩ ፊደሉን ወደ ሁለት ከፊል የሚከፋፍልበት (ክፍሎች ለማለት የሚያስደስት መንገድ) ነው። የመጀመሪያው ከፊል ግን ፕሮግራሙ እንዲሸጋገር የነገሩት ረጅም ቢሆንም ሁለተኛው ደግሞ ቀሪው ነው። ኮምፒዩተሩ ከፊሉን ይቀይራል። ለውጥው 0 ከሆነ ፣ ምንም ነገር ስለማይቀይሩ አዲሱ ፊደላት እና አሮጌው ፊደላት አንድ ናቸው ከሚለው ከመጀመሪያው መግለጫ ጋር ፣ ኮዱ የሚሠራው በትክክል ነው።

ለምሳሌ:

ቅደም ተከተል - 123456789

ከፊል አንድ - 123; ከፊል ሁለት - 456789

አዲስ ቅደም ተከተል - 456789123

ኮድ ፦

ቁልፍ ከሆነ == 0:

newAlphabet = ፊደል

elif ቁልፍ> 0:

partialOne = ፊደል [: ቁልፍ]

ከፊል ሁለት = ፊደል [ቁልፍ:]

newAlphabet = ከፊል ሁለት + ከፊል አንድ

ሌላ

partialOne = ፊደል [: (26 + ቁልፍ)]

ከፊል ሁለት = ፊደል [(26 + ቁልፍ):]

newAlphabet = ከፊል ሁለት + ከፊል አንድ

ደረጃ 3 - መልእክቱን ማዛወር

መልእክቱን መቀየር
መልእክቱን መቀየር

አሁን የእኛ ፊደላት እና አዲሱ ፊደላት አሉን። የሚቀረው መልዕክቱን ወደ ኮዱ መለወጥ ብቻ ነው።

በመጀመሪያ ፣ አዲስ ተለዋዋጭ አዘጋጅተን ‹ኢንክሪፕትድ› ብለን እንጠራው እና ወደ «» አቀናብርነው። ከዚያ በመልዕክቱ ውስጥ እያንዳንዱን ፊደል የሚፈትሽ እና ወደ አዲሱ ፊደል የሚቀይር በጣም የተወሳሰበ ለ-loop እንጽፋለን። ውጤቱን ያወጣል እና እዚያ አለዎት ፣ በተሳካ ሁኔታ የተቀየረ ኮድ!

ኮድ ፦

ኢንክሪፕትድ = "" በክልል ውስጥ ለ message_index (0 ፣ ሌን (መልእክት)) ፦

መልዕክት ከሆነ [message_index] == "":

የተመሰጠረ+= ""

በክልል ውስጥ ለፊደል_ኢንዴክስ (0 ፣ ሌን (አዲስ ፊደል)) ፦

መልእክት ከሆነ [message_index] == ፊደል [ፊደል_ኢንዴክስ]:

የተመሰጠረ+= አዲስ ፊደል [ፊደል_ኢንዴክስ]

ማተም (ኢንክሪፕት የተደረገ)

ደረጃ 4: ተጨማሪ

ተጨማሪ
ተጨማሪ
ተጨማሪ
ተጨማሪ

የኮዱ ፋይል ተያይል።

የሚመከር: