Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Alano

Simples Algoritmo de Criptografia em Python

Recommended Posts

Pequeno código que desenvolvi que mostra como desenvolver um pequeno Algoritmo de Criptografia em Python sem utilizar nenhuma biblioteca extra do mesmo. O código está bem documentado e dúvidas podem ser tiradas aqui.

 

#-*- coding: utf-8 -*-

# 	openHash Library
#	- - - - - - - - -
# 	by Bruno Alano
#
# Description: Cryptography Library to Encode Strings and Binary Data

# ==============================
# Para cada letra adicionada
# deverá adicionar uma para o
# cKeys
# ==============================
keys = ['a', 'A', 'b', 'B'] # Dicionário
cKeys = ['*/747/', '*/139/', '*/8423/', '*/8787/'] # Dicionário Criptografado (deve iniciar com *)

# ==============================
# 		Váriaveis Nulas
# ==============================
encryp = ''
decryp = ''

# ==============================
#			Funções
# ==============================

def simpleEncrypt(string):
# Carrega dicionários
global keys
global cKeys

# Carrega váriavel global
global encryp

# Para cada letra da 'string'
for letter in string:
	# Procura posição desta letra (tem que ter no dicionário),
	# e pega a posição
	sid = keys.index(letter)

	# Transforma a letra na mesma posição do Dicionário
	# Criptografado
	encryp = encryp + cKeys[sid]

print (encryp)

def simpleDecrypt(string):
# Carrega dicionários
global keys
global cKeys

# Carrega váriavel global
global decryp

# Separa a váriavel criptografado por "*"
dec = string.split('*')

# Para cada Array do 'dec'
for setConj in dec:
	# Remove Array vazia
	if (setConj == ''):
		continue

	# Adiciona o * para fazer a busca
	decSet = '*' + setConj
	# Procura no Cicionário Criptografado
	did = cKeys.index(decSet)
	# Transforma a letra na mesma posição do Dicionário
	decryp = decryp + keys[did]

print (decryp)

# ==============================
#			EXEMPLOs
# ==============================

simpleEncrypt("AbBa") #Retorna: */139/*/8423/*/8787/*/747/ 
simpleDecrypt("*/139/*/8423/*/8787/*/747/") #Retorna: AbBa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, bom código, mas eu sugiro dar uma aprimorada nele, ainda não sei muito de python para dar uma luz para onde seguir, mas o seu código é um tanto fácil de ser quebrado... Pois cada letra corresponde a "chave" criptografada, então b sempre será a */8423/, então fica fácil de decifrar a mensagem. Mas já é algo =]

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um simples código que fiz apenas para aprimorar conhecimento. Ele não tem fim comercial ou mesmo de uso pessoal.

 

Para quem quiser, é só criar 2 ou mais listas de criptografia com códigos diferentes e depois o Python escolher cada uma para cada letra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal seria, após a desencriptação, ele gerar várias mensagens falsas com contexto pra disfarçar a mensagem que se quer passar de fato. Desse jeito quem quebrasse o código iria conseguir nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.