Jump to content

[Resolvido] Cifra / Decifra com password


Psycho_Mind
 Share

Recommended Posts

Boa noite.

Estou a cifrar dados, passando os dados a cifrar e uma password (e.g. chave simetrica) e depois efetuar a respetiva decifra... até aqui tudo certo, mas a decifra e efetuada sobre a cifra (resultado da mesma), obtendo o resultado sem problemas.

Mas o que procuro é que aquando da decifra a mesma só seja efetuada colocando a password original com que foi feita a cifra. Só consigo encontrar formas de efetuar como indico na descrição acima, não indo de encontro ao que pretendo.

Obrigado por toda e qualquer ajuda.

Link to comment
Share on other sites

O que pedes é impossível.

O que é possível é gravares, juntamente com a cifra, algo que te ajude a fazer isso.

Por exemplo, podes guardar, na mensagem, um texto em claro (aleatório) sem cifra e o seu correspondente cifrado. Usando a password indicada, tentas decifrar esse texto de que tens os 2. Se forem diferentes, a password está errada, não vale a pena continuar.

Há várias maneiras de fazer isto, a que indiquei é simplesmente 1 maneira.

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

O que pedes é impossível.

O que é possível é gravares, juntamente com a cifra, algo que te ajude a fazer isso.

Por exemplo, podes guardar, na mensagem, um texto em claro (aleatório) sem cifra e o seu correspondente cifrado. Usando a password indicada, tentas decifrar esse texto de que tens os 2. Se forem diferentes, a password está errada, não vale a pena continuar.

Há várias maneiras de fazer isto, a que indiquei é simplesmente 1 maneira.

Eu estou a cifrar dados utilizando uma password (chave simetrica). A intenção é depois outro utilizador que tem conhecimento da password (chave simetrica) fazer uso desta para poder decifrar os dados. Porque como está no codigo abaixo (forma que estou a utilizar) efetuo diretamente a decifra sem precisar de inserir a password com que foi cifrada, tornando irrelevante utilizar uma password.

##### CIFRAR #####
filename1 = raw_input("Insert file name: ")
with open(filename1,'rb') as f:
 s = f.read()

data1 = s


# definicao da password a partir da qual se vai criar uma chave
global password1
password1 = raw_input('Enter password: ')

# geracao da chave de 16bytes (AES-128) a partir da password
h1 = SHA256.new()
h1.update(password1)
key1 = h1.digest()[0:16]

# geracao do vector de inicializacao de 16bytes
iv1 = Random.new().read(16)

# criacao do criptograma (dados cifrados)
cipher1 = AES.new(key1, AES.MODE_CFB, iv1) #não precisa do iv usando o modo AES.MODE_ECB, mas este não é tão seguro e pode expor padrões da mensagem cifrada
global criptogram1
criptogram1 = iv1 + cipher1.encrypt(data1)

##### DECIFRAR #####
cipher1 = AES.new(key1, AES.MODE_CFB, criptogram1)
data_recov1 = cipher1.decrypt(criptogram1)

print "\nRecuperacao dos dados limpos do Ficheiro: " , data_recov1
Link to comment
Share on other sites

Separa as scripts: cria uma para cifrar e outra para decifrar.

Ou então, depois de usares a chave, elimina-a. Caso contrário, é obvio que vais continuar a ter a chave no programa, visto que precisaste dela para cifrar a mensagem.

Estou a cifrar dados, passando os dados a cifrar e uma password (e.g. chave simetrica) e depois efetuar a respetiva decifra... até aqui tudo certo, mas a decifra e efetuada sobre a cifra (resultado da mesma), obtendo o resultado sem problemas.

Algumas definições que podes passar a usar para tornar as tuas mensagens mais claras: os dados a cifrar são habitualmente denominados de mensagem, e o resultado de cifrares uma mensagem é habitualmente denominado de criptograma.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.