first two challenges solved
This commit is contained in:
parent
988d229bce
commit
037472fc07
8 changed files with 77 additions and 12 deletions
2
data/02.txt
Normal file
2
data/02.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
1c0111001f010100061a024b53535009181c
|
||||
686974207468652062756c6c277320657965
|
1
data/03.txt
Normal file
1
data/03.txt
Normal file
|
@ -0,0 +1 @@
|
|||
1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736
|
24
setup.cfg
Normal file
24
setup.cfg
Normal file
|
@ -0,0 +1,24 @@
|
|||
[metadata]
|
||||
name = cryptopals
|
||||
version = 0.1
|
||||
author = Joshua Flores
|
||||
author_email = josh@heavyguys.net
|
||||
description = Cryptopals Solutions
|
||||
long_description = file: README.md, LICENSE.txt
|
||||
long_description_content_type = text/markdown
|
||||
url = https://git.heavyguys.net/Josh/cryptopals
|
||||
project_urls =
|
||||
repository = https://git.heavyguys.net/Josh/cryptopals.git
|
||||
classifiers =
|
||||
Programming Language :: Python :: 3
|
||||
License :: OSI Approved :: MIT License
|
||||
Operating System :: OS Independent
|
||||
|
||||
[options]
|
||||
package_dir =
|
||||
= src
|
||||
packages = find:
|
||||
python_requires = >=3.9
|
||||
|
||||
[options.packages.find]
|
||||
where = src
|
14
src/cryptopals/cryptlib.py
Normal file
14
src/cryptopals/cryptlib.py
Normal file
|
@ -0,0 +1,14 @@
|
|||
import base64
|
||||
|
||||
|
||||
# this function takes a string representing hex, converts to bytes, and re-encodes to base64
|
||||
def hex_to_base64(hex_string):
|
||||
byte_array = bytearray.fromhex(hex_string)
|
||||
base64_value = base64.b64encode(byte_array)
|
||||
return base64_value
|
||||
|
||||
# this function takes two hex strings, converts them to bytes, and xor's them
|
||||
def byte_xor(bs1, bs2):
|
||||
byte_array1 = int(bs1,16)
|
||||
byte_array2 = int(bs2,16)
|
||||
return byte_array1 ^ byte_array2
|
|
@ -1,9 +0,0 @@
|
|||
import base64
|
||||
|
||||
|
||||
# this function takes a string representing hex, converts to bytes, and re-encodes to base64
|
||||
def hex_to_base64(hex_string)
|
||||
byte_array = bytearray.fromhex(hex_string)
|
||||
base64_value = base64.b64encode(byte_array)
|
||||
return base64_value
|
||||
|
12
tests/01.py
12
tests/01.py
|
@ -1,10 +1,16 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from cryptopals import helper
|
||||
from cryptopals import cryptopals
|
||||
import os, sys
|
||||
|
||||
module_dir = os.path.relpath('../src/cryptopals')
|
||||
sys.path.insert(0, module_dir)
|
||||
|
||||
import helper, cryptlib
|
||||
|
||||
def main():
|
||||
pass
|
||||
hex_string = helper.read_file("../data/01.txt")
|
||||
solution = cryptlib.hex_to_base64(hex_string)
|
||||
print(solution.decode())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
17
tests/02.py
Normal file
17
tests/02.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import os, sys
|
||||
|
||||
module_dir = os.path.relpath('../src/cryptopals')
|
||||
sys.path.insert(0, module_dir)
|
||||
|
||||
import helper, cryptlib
|
||||
|
||||
def main():
|
||||
content = helper.read_file("../data/02.txt")
|
||||
hexstring_list = content.splitlines()
|
||||
solution = cryptlib.byte_xor(hexstring_list[0], hexstring_list[1])
|
||||
print(hex(solution)[2:])
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
|
@ -1,5 +1,15 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import os, sys
|
||||
|
||||
module_dir = os.path.relpath('../src/cryptopals')
|
||||
sys.path.insert(0, module_dir)
|
||||
|
||||
import helper, cryptlib
|
||||
|
||||
def main():
|
||||
pass
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue