Cardano

Il linguaggio di nuova generazione, opinioni, dubbi e aiuti.

Moderator: checkm

Cardano

Postby eXiD on Mon Apr 30, 2007 7:48 pm

Criptazione e Decriptazione bye me.

Enjoy!


################################################

Code: Select all
import random
import os
import string

class Cardano:
    def __init__(self):
        self.versione = "0.1"
        self.input = ""
        self.lunghezza = ""
        self.griglia = []
        self.distanza = []

    def start(self):
        while 1:
            os.system("clear")

            print """
1 - Cripta
2 - Decripta
3 - Exit
            """
           
            scelta = raw_input("\n> ")
           
            if scelta == "1":
                self.crypt()

            elif scelta == "2":
                self.decrypt()

            elif scelta == "3":
                break

            else:
                print "\n Errore, re-inserisci scelta!"

    def crypt(self):
        self.input = raw_input("\nScrivimi la frase da criptare: ")
        self.calculate()
        self.filename = raw_input("Nome del file in cui salvare la griglia: ")
        self.keyname = raw_input("Nome del file in cui salvare la chiave: ")
        self.file()


    def calculate(self):
        if self.input=="":
            raise SystemExit


        self.input=self.input.split(" ")       
           
        a = ""
       
        for obj in self.input:
            a+=obj

        self.input = string.lower(a)
       
        for obj in self.input:
            if ord(obj)<97 or ord(obj)>122:
                raise SystemExit
       
        lunghezza = (len(a)*len(a))+random.randrange(0,5)

        for obj in range(lunghezza*lunghezza):
            self.griglia.append(chr(random.randrange(97,122)))

        while 1:
            self.distanza=[]
            Errore=False
            pos=0
            for obj in self.input:
                pos = random.randrange(pos+1, (len(self.griglia)/len(self.input))+pos)
                if pos>len(self.griglia): Errore=True
                self.distanza.append(pos)
            if not Errore:
                break

        c=0
        for obj in self.input:
            self.griglia[self.distanza[c]] = obj
            c+=1

           
    def decrypt(self):
        self.f2d = raw_input("\n Inserire file con la griglia: ")
        self.k2d = raw_input("\n Inserire file con la chiave: ")

        try:
            file=open(self.f2d, "r")
        except:
            print "Non trovo il file con la griglia!"
            raise SystemExit

        try:
            file2=open(self.k2d, "r")
        except:
            print "Non trovo il file con la chiave!"
            raise SystemExit

        try:
            a = eval(file.read())
        except:
            print "\n File griglia corrotto!"
            raise SystemExit
       
        try:
            b = eval(file2.read())
        except:
            print "\n File chiave corrotto!"
            raise SystemExit
       
        stringa=""
        for obj in b:
            stringa+=a[obj]+" "
           
        print "\nLa frase è: "+stringa
        raw_input("\n Premi INVIO per continuare")


    def file(self):
        try:
            file=open(self.filename, "w")
            file.write(str(self.griglia))
            file.close()

            file=open(self.keyname, "w")
            file.write(str(self.distanza))
            file.close()

            print "File Scritto con successo!"
        except:
            print "Errore! File non scritto!"

        raw_input("\n Premi INVIO per continuare")
   
       
exe = Cardano()
exe.start()
User avatar
eXiD
Newbies
 
Posts: 81
Joined: Fri Apr 13, 2007 4:54 pm

Cardano

Sponsor

Sponsor


Re: Cardano

Postby dan-gu on Tue May 01, 2007 11:29 am

Doh!!! :x
mi hai battuto sul tempo. Volevo giusto farne uno io, però in C.
Il python ho iniziato da poco a studiarmelo quindi non ho ancora famigliarità con questo linguaggio, però bravo ;)
firma???? ci sto pensando....
User avatar
dan-gu
Diagramma a Blocchi
 
Posts: 232
Joined: Wed Feb 14, 2007 3:09 pm
Location: FURLAN INSIDE

Postby Falcon on Tue May 01, 2007 9:08 pm

Io ne ho fatto uno in VB uno in C.... :lol: :lol: !!
Linux Slackware User
User avatar
Falcon
Java Programmer
 
Posts: 542
Joined: Sat Jul 08, 2006 8:38 am

Postby eXiD on Tue May 01, 2007 10:32 pm

Postateli ^^
User avatar
eXiD
Newbies
 
Posts: 81
Joined: Fri Apr 13, 2007 4:54 pm

Postby dan-gu on Wed May 02, 2007 6:29 pm

F1ght1ngF4lc0n wrote:Io ne ho fatto uno in VB uno in C.... :lol: :lol: !!

Ma li hai postati? Ho provato a cercare quello in c e non l'ho trovato.
Comunque esiste qualche guida che spieghi come vengono criptati i file?
Mi sarebbe utile :)
EDIT: Ritiro cio che ho detto. L'ho trovato. La richiesta per una guida però è ancora valida. :)
firma???? ci sto pensando....
User avatar
dan-gu
Diagramma a Blocchi
 
Posts: 232
Joined: Wed Feb 14, 2007 3:09 pm
Location: FURLAN INSIDE

Postby eXiD on Wed May 02, 2007 8:30 pm

Io ho letto il funzionamento su Hj.
User avatar
eXiD
Newbies
 
Posts: 81
Joined: Fri Apr 13, 2007 4:54 pm


Return to Python

Who is online

Users browsing this forum: No registered users and 1 guest