Created
July 9, 2019 23:06
-
-
Save renatovieiradesouza/985d8923745898d53a8cba048f01d985 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests, hashlib, json | |
#Recupera texto cifrado e diretrizes de decodificacao | |
def resgataTextoCifrado(): | |
url = "https://api.codenation.dev/v1/challenge/dev-ps/generate-data" | |
query = {"token":"c335374e8256c92a323d169944a44c3267ce965a"} | |
headers = { | |
'Cache-Control': "no-cache", | |
'Host': "api.codenation.dev", | |
} | |
resposta = requests.request("GET", url, headers=headers, params=query) | |
if resposta.status_code == 200: | |
#Salva arquivo answer.json | |
arquivo = open("answer.json","w+") | |
arquivo.write(resposta.text) | |
else: | |
print("Falha ao obter dados. URL: " + url) | |
resgataTextoCifrado() | |
def decodificaTexto(textoParaDecifrar,qtdCasasDecifrar): | |
#Parametros de uso | |
alfabeto = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] | |
#Transforma texto cifrado em array | |
tamanhoTextoCifrado = len(textoParaDecifrar); | |
tamanhoAlfabeto = len(alfabeto) | |
textoDecifrado = '' | |
letraEncontrada = '' | |
resumoCriptografico = '' | |
#Decifra texto | |
for x in range(tamanhoTextoCifrado): | |
for y in range(tamanhoAlfabeto): | |
if textoParaDecifrar[x] == alfabeto[y]: | |
posAtual = y; | |
posFinal = posAtual - qtdCasasDecifrar | |
if(posFinal < 0): | |
posFinal = len(alfabeto) - abs(posFinal) | |
letraEncontrada = alfabeto[posFinal] | |
else: | |
letraEncontrada = alfabeto[posFinal] | |
elif ( textoParaDecifrar[x] == " " ): | |
letraEncontrada = " " | |
elif( textoParaDecifrar[x] == "."): | |
letraEncontrada = "." | |
#Incrementa o texto decifrado em cada interação | |
textoDecifrado = textoDecifrado + letraEncontrada | |
#Criptografa o texto decifrado em sha1 | |
resumoCriptografico = hashlib.sha1(textoDecifrado.encode()) | |
#Criar json resultado | |
dados = { | |
"texto_decifrado" : textoDecifrado, | |
"resumo_criptografico" : resumoCriptografico.hexdigest() | |
} | |
python2json = json.dumps(dados) | |
return (python2json) | |
def atualizaArquivoJson(dados): | |
textoTratado = json.loads(dados) | |
#Append com dados finais para envio a Codenation | |
jsonFile = open("answer.json", "r") | |
data = json.load(jsonFile) | |
jsonFile.close() | |
# #Atualiza texto decifrado | |
tmp = data["decifrado"] | |
data["decifrado"] = textoTratado["texto_decifrado"] | |
# #Atualiza resumo criptografico | |
tmp = data["resumo_criptografico"] | |
data["resumo_criptografico"] = textoTratado["resumo_criptografico"] | |
# #Salva atualizações no arquivo json | |
jsonFile = open("answer.json", "w+") | |
jsonFile.write(json.dumps(data)) | |
jsonFile.close() | |
atualizaArquivoJson(decodificaTexto("mnbrpw rb lqxxbrwp qxf hxd fruu ojru. axw onrw",9)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment