Skip to content

Replace base64_cipher.py with an easy to understand version #3925

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Nov 25, 2020

Conversation

hfz1337
Copy link
Contributor

@hfz1337 hfz1337 commented Nov 22, 2020

Describe your change:

This PR changes the existing base64_cipher.py with an easy to understand script that explains how the Base64 algorithm works under the hood. The solution is not necessarily faster, but I believe it will help people understand how the algorithm works and why it is possible to use Base64 in Steganography to conceal the existence of a piece of data.
Further more, I believe the base64_cipher.py name can be misleading as Base64 is considered an encoding, and not a cipher.

  • Add an algorithm?
  • Improve an existing solution.
  • Fix a bug or typo in an existing algorithm?
  • Documentation change?

Checklist:

  • I have read CONTRIBUTING.md.
  • This pull request is all my own work -- I have not plagiarized.
  • I know that pull requests will not be merged if they fail the automated tests.
  • This PR only changes one algorithm file. To ease review, please open separate PRs for separate algorithms.
  • All new Python files are placed inside an existing directory.
  • All filenames are in all lowercase characters with no spaces or dashes.
  • All functions and variable names follow Python naming conventions.
  • All function parameters and return values are annotated with Python type hints.
  • All functions have doctests that pass the automated testing.
  • All new algorithms have a URL in its comments that points to Wikipedia or other similar explanation.
  • If this pull request resolves one or more open issues then the commit message contains Fixes: #{$ISSUE_NO}.

@ghost ghost added awaiting reviews This PR is ready to be reviewed tests are failing Do not merge until tests pass and removed awaiting reviews This PR is ready to be reviewed labels Nov 22, 2020
@ghost ghost added awaiting reviews This PR is ready to be reviewed and removed tests are failing Do not merge until tests pass labels Nov 22, 2020
@amaank404
Copy link
Contributor

@cclauss, check this

Copy link
Member

@cclauss cclauss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add these two tests to show how the algorithms deal with bad input data.

@ghost ghost added awaiting changes A maintainer has requested changes to this PR and removed awaiting reviews This PR is ready to be reviewed labels Nov 25, 2020
Co-authored-by: Christian Clauss <[email protected]>
@ghost ghost added the tests are failing Do not merge until tests pass label Nov 25, 2020
@ghost ghost removed the tests are failing Do not merge until tests pass label Nov 25, 2020
Copy link
Member

@cclauss cclauss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An awesome contribution! Thanks for doing this.

@ghost ghost removed the awaiting changes A maintainer has requested changes to this PR label Nov 25, 2020
@cclauss cclauss merged commit ce3ce3f into TheAlgorithms:master Nov 25, 2020
stokhos pushed a commit to stokhos/Python that referenced this pull request Jan 3, 2021
…ithms#3925)

* rename base64_cipher.py to base64_encoding.py

* edit base64_encoding.py

* import necessary modules inside doctests

* make it behave like the official implementation

* replace format with f-string where possible

* replace format with f-string

Co-authored-by: Christian Clauss <[email protected]>

* fix: syntax error due to closing parenthese

* reformat code

Co-authored-by: Christian Clauss <[email protected]>
peRFectBeliever pushed a commit to peRFectBeliever/Python that referenced this pull request Apr 1, 2021
…ithms#3925)

* rename base64_cipher.py to base64_encoding.py

* edit base64_encoding.py

* import necessary modules inside doctests

* make it behave like the official implementation

* replace format with f-string where possible

* replace format with f-string

Co-authored-by: Christian Clauss <[email protected]>

* fix: syntax error due to closing parenthese

* reformat code

Co-authored-by: Christian Clauss <[email protected]>
Panquesito7 pushed a commit to Panquesito7/Python that referenced this pull request May 13, 2021
…ithms#3925)

* rename base64_cipher.py to base64_encoding.py

* edit base64_encoding.py

* import necessary modules inside doctests

* make it behave like the official implementation

* replace format with f-string where possible

* replace format with f-string

Co-authored-by: Christian Clauss <[email protected]>

* fix: syntax error due to closing parenthese

* reformat code

Co-authored-by: Christian Clauss <[email protected]>
shermanhui pushed a commit to shermanhui/Python that referenced this pull request Oct 22, 2021
…ithms#3925)

* rename base64_cipher.py to base64_encoding.py

* edit base64_encoding.py

* import necessary modules inside doctests

* make it behave like the official implementation

* replace format with f-string where possible

* replace format with f-string

Co-authored-by: Christian Clauss <[email protected]>

* fix: syntax error due to closing parenthese

* reformat code

Co-authored-by: Christian Clauss <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants