Psycho_Mind Posted August 3, 2014 Report Share Posted August 3, 2014 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 More sharing options...
brunoais Posted August 3, 2014 Report Share Posted August 3, 2014 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 More sharing options...
Psycho_Mind Posted August 4, 2014 Author Report Share Posted August 4, 2014 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 More sharing options...
brunoais Posted August 4, 2014 Report Share Posted August 4, 2014 e? "[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 More sharing options...
Rui Carlos Posted August 4, 2014 Report Share Posted August 4, 2014 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. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Psycho_Mind Posted August 5, 2014 Author Report Share Posted August 5, 2014 Entretanto consegui perceber melhor alguma coisas que me estavam a falhar... faltou-me uma interpretação correta do que pretendia e do que estava de fato a fazer. Obrigado pelas dicas que ajudaram a perceber o que falhava. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now