É possivel codificar um ficheiro de bloco de notas ou wordpad?

pedrosimoes

1st Folding then Sex
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
 
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.
 
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.
 
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, 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.
 
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.
 
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. :)
 
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 (ou ARC4, como quiserem), que é rápido e eficaz, e é o meu preferido, do Blowfish e do AES/Rijndael. 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.
 
Última edição:
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, 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). 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! :007:
 
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.
 
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 como a Cifra de Vigenère, tendo em consideração que são demasiado básicas.
 
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.
 
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.
 
Back
Topo