ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Cracking Codes with Python: An Introduction to Building and Breaking Ciphers

دانلود کتاب شکستن کدها با پایتون: مقدمه ای در ساختن و شکستن رمزها

Cracking Codes with Python: An Introduction to Building and Breaking Ciphers

مشخصات کتاب

Cracking Codes with Python: An Introduction to Building and Breaking Ciphers

ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 1593278225, 9781593278229 
ناشر: No Starch Press 
سال نشر: 2018 
تعداد صفحات: 0 
زبان: English 
فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 19 مگابایت 

قیمت کتاب (تومان) : 41,000



کلمات کلیدی مربوط به کتاب شکستن کدها با پایتون: مقدمه ای در ساختن و شکستن رمزها: پایتون، زبان های برنامه نویسی، کامپیوتر و فناوری، هک، اینترنت و رسانه های اجتماعی، کامپیوتر و فناوری، رمزگذاری، امنیت و رمزگذاری، کامپیوتر و فناوری، رمزنگاری، امنیت و رمزگذاری، کامپیوتر و فناوری



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 22


در صورت تبدیل فایل کتاب Cracking Codes with Python: An Introduction to Building and Breaking Ciphers به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب شکستن کدها با پایتون: مقدمه ای در ساختن و شکستن رمزها نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب شکستن کدها با پایتون: مقدمه ای در ساختن و شکستن رمزها

یاد بگیرید که چگونه در پایتون برنامه‌نویسی کنید در حالی که رمزها را می‌سازید و می‌شکنید—الگوریتم‌هایی که برای ایجاد و ارسال پیام‌های مخفی استفاده می‌شوند!

بعد از یک دوره خرابی در اصول برنامه نویسی پایتون، می آموزید که برنامه هایی بسازید، آزمایش کنید و هک کنید که متن را با رمزهای کلاسیک مانند رمز جابجایی و رمز ویژنر رمزگذاری می کند. شما با برنامه های ساده برای رمزهای معکوس و سزار شروع می کنید و سپس به رمزنگاری کلید عمومی می رسید، نوع رمزگذاری که برای ایمن سازی تراکنش های آنلاین امروزی، از جمله امضای دیجیتال، ایمیل، و بیت کوین استفاده می شود.

هر برنامه شامل کد کامل و توضیح خط به خط در مورد نحوه کار کردن است. در پایان کتاب، شما یاد خواهید گرفت که چگونه در پایتون کدنویسی کنید و برنامه های هوشمندانه ای برای اثبات آن خواهید داشت!

همچنین یاد خواهید گرفت که چگونه:

- حلقه‌ها، متغیرها و عبارات کنترل جریان را در برنامه‌های واقعی ترکیب کنید
- از فایل‌های فرهنگ لغت استفاده کنید تا فوراً تشخیص دهید که آیا پیام‌های رمزگشایی شده انگلیسی معتبر هستند یا نامعقول هستند
- برنامه‌های آزمایشی ایجاد کنید تا مطمئن شوید کد شما به درستی رمزگذاری و رمزگشایی می‌شود
>- کد (و هک!) نمونه کارکردی از رمز affine، که از محاسبات مدولار برای رمزگذاری پیام استفاده می کند
- رمزها را با تکنیک هایی مانند تجزیه و تحلیل brute-force و فرکانس بشکنید

راه بهتری وجود ندارد یادگیری کدنویسی به جای بازی با برنامه های واقعی. شکستن کدها با پایتون یادگیری را سرگرم کننده می کند!


توضیحاتی درمورد کتاب به خارجی

Learn how to program in Python while making and breaking ciphers—algorithms used to create and send secret messages! 

After a crash course in Python programming basics, you’ll learn to make, test, and hack programs that encrypt text with classical ciphers like the transposition cipher and Vigenère cipher. You’ll begin with simple programs for the reverse and Caesar ciphers and then work your way up to public key cryptography, the type of encryption used to secure today’s online transactions, including digital signatures, email, and Bitcoin.

Each program includes the full code and a line-by-line explanation of how things work. By the end of the book, you’ll have learned how to code in Python and you’ll have the clever programs to prove it!

You’ll also learn how to:

- Combine loops, variables, and flow control statements into real working programs
- Use dictionary files to instantly detect whether decrypted messages are valid English or gibberish
- Create test programs to make sure that your code encrypts and decrypts correctly
- Code (and hack!) a working example of the affine cipher, which uses modular arithmetic to encrypt a message
- Break ciphers with techniques such as brute-force and frequency analysis

There’s no better way to learn to code than to play with real programs. Cracking Codes with Python makes the learning fun!



فهرست مطالب

Brief Contents
Contents in Detail
Acknowledgments
Introduction
	Who Should Read This Book?
	What’s in This Book?
	How to Use This Book
		Typing Source Code
		Checking for Typos
		Coding Conventions in This Book
		Online Resources
	Downloading and Installing Python
		Windows Instructions
		macOS Instructions
		Ubuntu Instructions
	Downloading pyperclip.py
	Starting IDLE
	Summary
Chapter 1: Making Paper 
Cryptography Tools
	What Is Cryptography?
	Codes vs. Ciphers
	The Caesar Cipher
		The Cipher Wheel
		Encrypting with the Cipher Wheel
		Decrypting with the Cipher Wheel
		Encrypting and Decrypting with Arithmetic
	Why Double Encryption Doesn’t Work
	Summary
	Practice Questions
Chapter 2: Programming in the Interactive Shell
	Some Simple Math Expressions
		Integers and Floating-Point Values
		Expressions
		Order of Operations
		Evaluating Expressions
	Storing Values with Variables
		Overwriting Variables
		Variable Names
	Summary
	Practice Questions
Chapter 3: Strings and Writing Programs
	Working with Text Using String Values
		String Concatenation with the + Operator
		String Replication with the * Operator
		Getting Characters from Strings Using Indexes
	Printing Values with the print() Function
	Printing Escape Characters
	Quotes and Double Quotes
	Writing Programs in IDLE’s File Editor
	Source Code for the “Hello, World!” Program
	Checking Your Source Code with the Online Diff Tool
	Using IDLE to Access Your Program Later
		Saving Your Program
		Running Your Program
		Opening the Programs You’ve Saved
	How the “Hello, World!” Program Works
		Comments
		Printing Directions to the User
		Taking a User’s Input
		Ending the Program
	Summary
	Practice Questions
Chapter 4: The Reverse Cipher
	Source Code for the Reverse Cipher Program
	Sample Run of the Reverse Cipher Program
	Setting Up Comments and Variables
	Finding the Length of a String
	Introducing the while Loop
		The Boolean Data Type
		Comparison Operators
		Blocks
		The while Loop Statement
		“Growing” a String
	Improving the Program with an input() Prompt
	Summary
	Practice Questions
Chapter 5: The Caesar Cipher
	Source Code for the Caesar Cipher Program
	Sample Run of the Caesar Cipher Program
	Importing Modules and Setting Up Variables
	Constants and Variables
	The for Loop Statement
		An Example for Loop
		A while Loop Equivalent of a for Loop
	The if Statement
		An Example if Statement
		The else Statement
		The elif Statement
	The in and not in Operators
	The find() String Method
	Encrypting and Decrypting Symbols
		Handling Wraparound
		Handling Symbols Outside of the Symbol Set
	Displaying and Copying the Translated String
	Encrypting Other Symbols
	Summary
	Practice Questions
Chapter 6: Hacking the Caesar Cipher with Brute-Force
	Source Code for the Caesar Cipher Hacker Program
	Sample Run of the Caesar Cipher Hacker Program
	Setting Up Variables
	Looping with the range() Function
	Decrypting the Message
	Using String Formatting to Display the Key and Decrypted Messages
	Summary
	Practice Question
Chapter 7: Encrypting with the Transposition Cipher
	How the Transposition Cipher Works
		Encrypting a Message by Hand
		Creating the Encryption Program
	Source Code for the Transposition Cipher Encryption Program
	Sample Run of the Transposition Cipher Encryption Program
	Creating Your Own Functions with def Statements
		Defining a Function that Takes Arguments with Parameters
		Changes to Parameters Only Exist Inside the Function
		Defining the main() Function
	Passing the Key and Message as Arguments
	The List Data Type
		Reassigning the Items in Lists
		Lists of Lists
		Using len() and the in Operator with Lists
		List Concatenation and Replication with the + and * Operators
	The Transposition Encryption Algorithm
	Augmented Assignment Operators
	Moving currentIndex Through the Message
	The join() String Method
	Return Values and return Statements
		A return Statement Example
		Returning the Encrypted Ciphertext
	The __name__ Variable
	Summary
	Practice Questions
Chapter 8: Decrypting with the Transposition Cipher
	How to Decrypt with the Transposition Cipher on Paper
	Source Code for the Transposition Cipher Decryption Program
	Sample Run of the Transposition Cipher Decryption Program
	Importing Modules and Setting Up the main() Function
	Decrypting the Message with the Key
		The round(), math.ceil(), and math.floor() Functions
		The decryptMessage() Function
		Boolean Operators
		Adjusting the column and row Variables
	Calling the main() Function
	Summary
	Practice Questions
Chapter 9: Programming a Program to Test Your Program
	Source Code for the Transposition Cipher Tester Program
	Sample Run of the Transposition Cipher Tester Program
	Importing the Modules
	Creating Pseudorandom Numbers
	Creating a Random String
		Duplicating a String a Random Number of Times
		List Variables Use References
		Passing References
		Using copy.deepcopy() to Duplicate a List
		The random.shuffle() Function
		Randomly Scrambling a String
	Testing Each Message
	Checking Whether the Cipher Worked and Ending the Program
	Calling the main() Function
	Testing the Test Program
	Summary
	Practice Questions
Chapter 10: Encrypting and Decrypting Files
	Plain Text Files
	Source Code for the Transposition File Cipher Program
	Sample Run of the Transposition File Cipher Program
	Working with Files
		Opening Files
		Writing to and Closing Files
		Reading from a File
	Setting Up the main() Function
	Checking Whether a File Exists
		The os.path.exists() Function
		Checking Whether the Input File Exists with the os.path.exists() Function
	Using String Methods to Make User Input More Flexible
		The upper(), lower(), and title() String Methods
		The startswith() and endswith() String Methods
		Using These String Methods in the Program
	Reading the Input File
	Measuring the Time It Took to Encrypt or Decrypt
		The time Module and time.time() Function
		Using the time.time() Function in the Program
	Writing the Output File
	Calling the main() Function
	Summary
	Practice Questions
Chapter 11: Detecting English Programmatically
	How Can a Computer Understand English?
	Source Code for the Detect English Module
	Sample Run of the Detect English Module
	Instructions and Setting Up Constants
	The Dictionary Data Type
		The Difference Between Dictionaries and Lists
		Adding or Changing Items in a Dictionary
		Using the len() Function with Dictionaries
		Using the in Operator with Dictionaries
		Finding Items Is Faster with Dictionaries than with Lists
		Using for Loops with Dictionaries
	Implementing the Dictionary File
		The split() Method
		Splitting the Dictionary File into Individual Words
		Returning the Dictionary Data
	Counting the Number of English Words in message
		Divide-by-Zero Errors
		Counting the English Word Matches
		The float(), int(), and str() Functions and Integer Division
		Finding the Ratio of English Words in the Message
	Removing Non-Letter Characters
		The append() List Method
		Creating a String of Letters
	Detecting English Words
		Using Default Arguments
		Calculating Percentages
	Summary
	Practice Questions
Chapter 12: Hacking the 
Transposition Cipher
	Source Code of the Transposition Cipher Hacker Program
	Sample Run of the Transposition Cipher Hacker Program
	Importing the Modules
	Multiline Strings with Triple Quotes
	Displaying the Results of Hacking the Message
	Getting the Hacked Message
		The strip() String Method
		Applying the strip() String Method
		Failing to Hack the Message
	Calling the main() Function
	Summary
	Practice Questions
Chapter 13: A Modular Arithmetic Module for the Affine Cipher
	Modular Arithmetic
	The Modulo Operator
	Finding Factors to Calculate the Greatest Common Divisor
	Multiple Assignment
	Euclid’s Algorithm for Finding the GCD
	Understanding How the Multiplicative and Affine Ciphers Work
		Choosing Valid Multiplicative Keys
		Encrypting with the Affine Cipher
		Decrypting with the Affine Cipher
		Finding Modular Inverses
		The Integer Division Operator
	Source Code for the Cryptomath Module
	Summary
	Practice Questions
Chapter 14: Programming the Affine Cipher
	Source Code for the Affine Cipher Program
	Sample Run of the Affine Cipher Program
	Setting Up Modules, Constants, and the main() Function
	Calculating and Validating the Keys
		The Tuple Data Type
		Checking for Weak Keys
		How Many Keys Can the Affine Cipher Have?
	Writing the Encryption Function
	Writing the Decryption Function
	Generating Random Keys
	Calling the main() Function
	Summary
	Practice Questions
Chapter 15: Hacking the Affine Cipher
	Source Code for the Affine Cipher Hacker Program
	Sample Run of the Affine Cipher Hacker Program
	Setting Up Modules, Constants, and the main() Function
	The Affine Cipher Hacking Function
		The Exponent Operator
		Calculating the Total Number of Possible Keys
		The continue Statement
		Using continue to Skip Code
	Calling the main() Function
	Summary
	Practice Questions
Chapter 16: Programming the Simple Substitution Cipher
	How the Simple Substitution Cipher Works
	Source Code for the Simple Substitution Cipher Program
	Sample Run of the Simple Substitution Cipher Program
	Setting Up Modules, Constants, and the main() Function
	The sort() List Method
	Wrapper Functions
	The translateMessage() Function
		The isupper() and islower() String Methods
		Preserving Cases with isupper()
	Generating a Random Key
	Calling the main() Function
	Summary
	Practice Questions
Chapter 17: Hacking the Simple Substitution Cipher
	Using Word Patterns to Decrypt
		Finding Word Patterns
		Finding Potential Decryption Letters
	Overview of the Hacking Process
	The Word Pattern Modules
	Source Code for the Simple Substitution Hacking Program
	Sample Run of the Simple Substitution Hacking Program
	Setting Up Modules and Constants
	Finding Characters with Regular Expressions
	Setting Up the main() Function
	Displaying Hacking Results to the User
	Creating a Cipherletter Mapping
		Creating a Blank Mapping
		Adding Letters to a Mapping
		Intersecting Two Mappings
		How the Letter-Mapping Helper Functions Work
		Identifying Solved Letters in Mappings
		Testing the removeSolvedLetterFromMapping() Function
	The hackSimpleSub() Function
		The replace() String Method
		Decrypting the Message
		Decrypting in the Interactive Shell
	Calling the main() Function
	Summary
	Practice Questions
Chapter 18: Programming 
the Vigenère Cipher
	Using Multiple Letter Keys in the Vigenère Cipher
		Longer Vigenère Keys Are More Secure
		Choosing a Key That Prevents Dictionary Attacks
	Source Code for the Vigenère Cipher Program
	Sample Run of the Vigenère Cipher Program
	Setting Up Modules, Constants, and the main() Function
	Building Strings with the List-Append-Join Process
	Encrypting and Decrypting the Message
	Calling the main() Function
	Summary
	Practice Questions
Chapter 19: Frequency Analysis
	Analyzing the Frequency of Letters in Text
	Matching Letter Frequencies
		Calculating the Frequency Match Score for the Simple Substitution Cipher
		Calculating the Frequency Match Score for the Transposition Cipher
		Using Frequency Analysis on the Vigenère Cipher
	Source Code for Matching Letter Frequencies
	Storing the Letters in ETAOIN Order
	Counting the Letters in a Message
	Getting the First Member of a Tuple
	Ordering the Letters in the Message by Frequency
		Counting the Letters with getLetterCount()
		Creating a Dictionary of Frequency Counts and Letter Lists
		Sorting the Letter Lists in Reverse ETAOIN Order
		Sorting the Dictionary Lists by Frequency
		Creating a List of the Sorted Letters
	Calculating the Frequency Match Score of the Message
	Summary
	Practice Questions
Chapter 20: Hacking the Vigenère Cipher
	Using a Dictionary Attack to Brute-Force the Vigenère Cipher
	Source Code for the Vigenère Dictionary Hacker Program
	Sample Run of the Vigenère Dictionary Hacker Program
	About the Vigenère Dictionary Hacker Program
	Using Kasiski Examination to Find the Key’s Length
		Finding Repeated Sequences
		Getting Factors of Spacings
		Getting Every Nth Letters from a String
		Using Frequency Analysis to Break Each Subkey
		Brute-Forcing Through the Possible Keys
	Source Code for the Vigenère Hacking Program
	Sample Run of the Vigenère Hacking Program
	Importing Modules and Setting Up the main() Function
	Finding Repeated Sequences
	Calculating the Factors of the Spacings
		Removing Duplicates with the set() Function
		Removing Duplicate Factors and Sorting the List
		Finding the Most Common Factors
	Finding the Most Likely Key Lengths
		The extend() List Method
		Extending the repeatedSeqSpacings Dictionary
		Getting the Factors from factorsByCount
	Getting Letters Encrypted with the Same Subkey
	Attempting Decryption with a Likely Key Length
		The end Keyword Argument for print()
		Running the Program in Silent Mode or Printing Information to the User
		Finding Possible Combinations of Subkeys
		Printing the Decrypted Text with the Correct Casing
	Returning the Hacked Message
		Breaking Out of the Loop When a Potential Key Is Found
		Brute-Forcing All Other Key Lengths
	Calling the main() Function
	Modifying the Constants of the Hacking Program
	Summary
	Practice Questions
Chapter 21: The One-Time Pad Cipher
	The Unbreakable One-Time Pad Cipher
		Making Key Length Equal Message Length
		Making the Key Truly Random
		Avoiding the Two-Time Pad
		Why the Two-Time Pad Is the Vigenère Cipher
	Summary
	Practice Questions
Chapter 22: Finding and Generating Prime Numbers
	What Is a Prime Number?
	Source Code for the Prime Numbers Module
	Sample Run of the Prime Numbers Module
	How the Trial Division Algorithm Works
	Implementing the Trial Division Algorithm Test
	The Sieve of Eratosthenes
	Generating Prime Numbers with the Sieve of Eratosthenes
	The Rabin-Miller Primality Algorithm
	Finding Large Prime Numbers
	Generating Large Prime Numbers
	Summary
Chapter 23: Generating Keys for the Public Key Cipher
	Public Key Cryptography
	The Problem with Authentication
		Digital Signatures
		Beware the MITM Attack
	Steps for Generating Public and Private Keys
	Source Code for the Public Key Generation Program
	Sample Run of the Public Key Generation Program
	Creating the main() Function
	Generating Keys with the generateKey() Function
		Calculating an e Value
		Calculating a d Value
		Returning the Keys
	Creating Key Files with the makeKeyFiles() Function
	Calling the main() Function
	Hybrid Cryptosystems
	Summary
	Practice Questions
Chapter 24: Programming the Public Key Cipher
	How the Public Key Cipher Works
		Creating Blocks
		Converting a String into a Block
		The Mathematics of Public Key Cipher Encryption and Decryption
		Converting a Block to a String
		Why We Can’t Hack the Public Key Cipher
	Source Code for the Public Key Cipher Program
	Sample Run of the Public Key Cipher Program
	Setting Up the Program
	How the Program Determines Whether to Encrypt or Decrypt
	Converting Strings to Blocks with getBlocksFromText()
		The min() and max() Functions
		Storing Blocks in blockInt
	Using getTextFromBlocks() to Decrypt
		Using the insert() List Method
		Merging the Message List into One String
	Writing the encryptMessage() Function
	Writing the decryptMessage() Function
	Reading in the Public and Private Keys from Their Key Files
	Writing the Encryption to a File
	Decrypting from a File
	Calling the main() Function
	Summary
Appendix: Debugging Python Code
	How the Debugger Works
	Debugging the Reverse Cipher Program
	Setting Breakpoints
	Summary
Index
Resources




نظرات کاربران