pedrosimoes
11-03-2008, 15:31
Tipo, o eu queria exactamente e gardar senhas de varios registos q eu tenho num ficheiro do bloco de notas ou wordpad mas codificado, em q só eu saberia a descodificação! :D
|
View Full Version : É possivel codificar um ficheiro de bloco de notas ou wordpad? pedrosimoes 11-03-2008, 15:31 Tipo, o eu queria exactamente e gardar senhas de varios registos q eu tenho num ficheiro do bloco de notas ou wordpad mas codificado, em q só eu saberia a descodificação! :D IcePicK 11-03-2008, 15:44 Ou então podes utilizar o Seganos LockNote (https://www.steganos.com/us/products/home-office/locknote/overview/). Mavors 11-03-2008, 15:49 Qual é que seria o proposito da coisa? Podes escrever para um ficheiro uma pass encriptada... Também podes escrever para uma base de dados. Em java é relativamente fácil, mas ias escrever em que linguagem? Ia ser Windows Application, Web Application? E mais importante para quê? :P Se for só para ninguem saber a tua pass podes apenas meter pass no ficheiro ou usar pgp key ou algo do género. Se for para treinar, bem podes faze-lo de "n" maneiras. pedrosimoes 11-03-2008, 17:25 Eu queria pôr isso em ASP, mas n faço a minima km! whitehatg 11-03-2008, 17:33 Tipo, o eu queria exactamente e gardar senhas de varios registos q eu tenho num ficheiro do bloco de notas ou wordpad mas codificado, em q só eu saberia a descodificação! :D http://clientes.netvisao.pt/whitehat/encriptador/ fui eu que fiz ve la se serve para o que tu queres. Alguma duvida ja sabes Mavors 11-03-2008, 17:37 Para criares e escreveres um ficheiro em asp podes fazê-lo assim: <% Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:\ograndeficheiro.txt", ForWriting, True) f.Write "A minha password na formatação que eu quiser" f.Close %> Vais buscar o texto a um input qq e o algoritmo para criares a tua "encriptação" podes ser tu a fazê-lo ou então arranjas um metodo qq que faça isso. pedrosimoes 11-03-2008, 17:51 tou a zero! Dscla, mas explica-t melhor! :s The_True_Eue 12-03-2008, 15:58 Um dos algoritmos de encriptação mais simples que conheço é o seguinte: simplesmente aplicar uma função a cada caractere, como por exemplo, somar uma certa quantidade. Acho que toda a gente conhece isto, e não é lá grande coisa... Mas em vez de usares (somar x), podes usar algo menos perceptível para humanos (para alguns pelo menos), como um XOR bit-a-bit. Em C é o operador ^. Em VB, se bem me lembro, existe mesmo o operador Xor. Se alguém sabe como é em ASP... Não vou explicar como funciona (http://en.wikipedia.org/wiki/Exclusive_or), porque até nem interessa. O que interessa é que para obter o original bastar aplicar o XOR com o mesmo valor (chave). Se quiseres uma chave maior que um caractere podes aplicá-la sequencialmente, isto é, no primeiro caractere do input, XOR com o primeiro da chave, no segundo do input, o segundo da chave, ... Quando a chave acabar recomeças. Para quem não percebe nada de programação (pelo menos binário) ou criptografia, serve muito bem e é bastante difícil de quebrar. Se o que queres é algo mais seguro, deves utilizar um dos algoritmos criptográficos a sério, como o MD5 ou o SHA1. Armadillo 12-03-2008, 16:30 so uma coisa: nao seria mais simples zipares o ficheiro com password? n0nam3 12-03-2008, 16:39 Se bem que a nivel de segurança com um pouco de bruteforce talvez se chegue facilmente a password do ficheiro zipado... A ideia do The_True_Eue é bastante interessante. Um dia destes vou aplicar isso em C. Mavors 12-03-2008, 16:48 O sucesso do bruteforce depende sempre do nível de complexidade da password. Com uma password complexa não vais lá num tempo útil simpático. :) Kayvlim 12-03-2008, 16:51 MD5 e SHA1? Ele quer recuperar os dados ;) logo, hashá-los está fora de questão. @ tópico, existem vários algoritmos por aí. Pessoalmente, gosto do RC4 (http://en.wikipedia.org/wiki/RC4) (ou ARC4, como quiserem), que é rápido e eficaz, e é o meu preferido, do Blowfish (http://en.wikipedia.org/wiki/Blowfish_%28cipher%29) e do AES/Rijndael (http://en.wikipedia.org/wiki/Advanced_Encryption_Standard). Mas isto é, no fundo, desnecessário, porque ninguém estaria interessado em descodificar nada do que eu codifico :D Se a única coisa que queres fazer é com que um utilizador comum não consiga compreender o conteúdo desse ficheiro de texto, então até a famosa cifra de César funciona, ou uma variante da mesma. A cifra de César simples é o meio mais simples de todos - pegas num caracter e transforma-lo no seguinte (A -> B; G -> H; Z -> A). Uma modificação é subtrair em vez de somar, e em vez de ser 1 ser outro número, ou seja, para -2, A -> Y; G -> E; L -> J). Assim, "Techzone" com César: +1: Ufdiapof -1: Sdbgynmd +3: Whfkcrqh -3: Qbzewlkb E assim por diante. Outra modificação é esse número ser correspondente à posição da letra na string. Ou seja, em vez de somar/subtrair 1 ou 3, soma 1 no primeiro, subtrai 2 no segundo, soma 3 no terceiro, e assim por diante. Aplicado a um computador, e tomando proveito da tabela ASCII, podem sair coisas "engraçadas": Techzone com César, mas sem estar limitado a A-Z: +15: ctrw‰~}t -15: EVTYk`_V +90: ®¿½ÂÔÉÈ¿ -90: ù (não dá para perceber :x ) Para codificar fazes uma operação numérica qualquer, e para descodificar fazes a inversa (+1 -2 +3 -4 +5 -6 ==> -1 +2 -3 +4 -5 +6; +4 => -4; etc) Isto tudo, algoritmos bastante simples de se fazerem, e apesar de não serem praticamente nada seguros, são suficientes para que quem olhe não perceba nada à primeira vista. slack_guy 12-03-2008, 17:07 Em alternativa, podes usar Vim + GnuPG. Detalhes em http://www.vim.org/tips/tip.php?tip_id=651 Vantagem: usas um editor de texto a sério e usas um sistema de cifra e de chaves do melhor que há actualmente. Desvantagem: vais perder ganhar tempo a aprender muita coisa que nem te passa pela cabeça ;-) IcePicK 12-03-2008, 17:11 Um dos algoritmos de encriptação mais simples que conheço é o seguinte: simplesmente aplicar uma função a cada caractere, como por exemplo, somar uma certa quantidade. Acho que toda a gente conhece isto, e não é lá grande coisa... Mas em vez de usares (somar x), podes usar algo menos perceptível para humanos (para alguns pelo menos), como um XOR bit-a-bit. Em C é o operador ^. Em VB, se bem me lembro, existe mesmo o operador Xor. Se alguém sabe como é em ASP... Não vou explicar como funciona (http://en.wikipedia.org/wiki/Exclusive_or), porque até nem interessa. O que interessa é que para obter o original bastar aplicar o XOR com o mesmo valor (chave). Se quiseres uma chave maior que um caractere podes aplicá-la sequencialmente, isto é, no primeiro caractere do input, XOR com o primeiro da chave, no segundo do input, o segundo da chave, ... Quando a chave acabar recomeças. Para quem não percebe nada de programação (pelo menos binário) ou criptografia, serve muito bem e é bastante difícil de quebrar. Se bem percebi o que querias dizer, isso é um exemplo de cifra de blocos mais propriamente o modo Electronic codebook (ECB) (http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codeboo k_.28ECB.29). Que permite a criação de um "livro de códigos" e quanto maior o texto original, mais fácil fica de decifrar. Depois o tamanho do texto em claro tem que ter sempre multiplo do tamanho da chave. Se o que queres é algo mais seguro, deves utilizar um dos algoritmos criptográficos a sério, como o MD5 ou o SHA1. Claro que para cifrar deve utilizar MD5 ou SHA! É isso e batatas! :-D Esses algoritmos que referiste são algoritmos de síntese criptográfica. Logo é unidireccional. Garanto a 110% que partindo do de um texto "cifrado" com esses algoritmos nunca se poderá obter o texto original! :016: Mavors 12-03-2008, 17:19 Bem, neste caso estamos a falar de passwords... não de cifrar textos enormes, onde a capacidade de um descodificador se torna maior por causa de determinados padrões de escrita. Para passwords no âmbito que ele quer, acho que um simples array de equivalências é suficiente para ser praticamente impossível descodificar. Algo à semelhança do que o angel of wisdom disse da velhinha cifra de César. IcePicK 12-03-2008, 17:29 Bem, neste caso estamos a falar de passwords... não de cifrar textos enormes, onde a capacidade de um descodificador se torna maior por causa de determinados padrões de escrita. Para passwords no âmbito que ele quer, acho que um simples array de equivalências é suficiente para ser praticamente impossível descodificar. Algo à semelhança do que o angel of wisdom disse da velhinha cifra de César. Sim, é verdade. Nestas coisas a solução a utilizar depende sempre da segurança necessária. No entanto acho se objectivo foi só cifrar e decifrar um ficheiro mais vale procurar por aí uma biblioteca simples que implemente um algoritmo conhecido e depois é API. Se o objectivo for cifrar um ficheiro para aprender como o fazer, sim, deve começar por uma cifra como a de cesar ou utilizar uma cifra de alfabeto (http://en.wikipedia.org/wiki/The_Alphabet_Cipher) como a Cifra de Vigenère (http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher), tendo em consideração que são demasiado básicas. Morto 12-03-2008, 17:35 Zip no ficheiro e password protect. é fraco ? possivelmente! mas há mais fracos :P é fiavel ? uniformidade/fiabilidade hum penso que é do melhor! e rapidez ? é so zipar! e tamos a falar de um ficheiro TXT que contem passwords... ele so quer proteger o ficheiro de ser aberto por terceiros não é propriamente a base de dados do fbi ou dos contribuintes devedores portugueses :P http://www.winzip.com/ecdconfig.htm#encrypt Password-based AES Encryption. Use passwords or passphrases to protect your confidential information from unauthorized access with WinZip’s 128-bit or 256-bit AES encryption. AES encryption provides much greater cryptographic security than the traditional Zip 2.0 compatible encryption. Encryption applied to an attachment is done when the file is zipped. The recipient of the attachment must then use a password to extract the contents from the Zip file. WinZip E-Mail Companion's advanced encryption uses the Rijndael cryptographic algorithm which, in 2001, was specified by the National Institute of Standards and Technology (NIST) in Federal Information Processing Standards (FIPS) Publication 197 as the Advanced Encryption Standard (AES). When sending an AES-encrypted attachment, your recipients will need a compatible Zip file utility, such as WinZip 9.0 or later to decrypt the files with the password you supply. Kayvlim 12-03-2008, 17:39 Quando se substitui um caractere por outro correspondente (seja a tal array ou a cifra de César, que no fundo são a mesma coisa), o maior problema está na quantidade de texto: se digitalizarem um texto como a Bíblia ou o Harry Potter e o codificarem, podem descobrir o "cálculo" da cifra de César única e exclusivamente contando o número de ocorrências de cada caractere. No fundo, o espaço é o mais utilizado, logo, a repetição padronizada de um caractere pode indicar que este seja o espaço ou a letra A (mais geralmente, uma vogal). A vantagem da array é que não dá para calcular os caracteres. Descobrir o espaço não ajuda tanto quanto isso (isto, se o espaço for modificado). Depois, palavras curtas como "como", "de", "mas" ajudam a descodificar por dedução. Talvez seja mesmo melhor ires para o RC4 ou outro algoritmo mais complexo :P Googla, e encontras. |