Skip to content
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

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

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}.
@xcodz-dot
Copy link
Contributor

@xcodz-dot xcodz-dot commented Nov 25, 2020

@cclauss, check this

Copy link
Member

@cclauss cclauss left a comment

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

ciphers/base64_encoding.py Show resolved Hide resolved
ciphers/base64_encoding.py Show resolved Hide resolved
ciphers/base64_encoding.py Outdated Show resolved Hide resolved
ciphers/base64_encoding.py Outdated Show resolved Hide resolved
ciphers/base64_encoding.py Outdated Show resolved Hide resolved
Co-authored-by: Christian Clauss <cclauss@me.com>
Copy link
Member

@cclauss cclauss left a comment

An awesome contribution! Thanks for doing this.

@cclauss cclauss merged commit ce3ce3f into TheAlgorithms:master Nov 25, 2020
2 checks passed
2 checks passed
build
Details
pre-commit
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.