Criptografia de César

Publicado por Diogo V. Kersting 30/10/2006

[ Hits: 15.817 ]

Download cezar.py




Script que implementa a criptografia de César. Uma criptografia relativamente fraca, porém mostra como é fácil manipular strings em Python.

  



Esconder código-fonte

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# Por Diogo V. Kerting diogovk@gmail.com
# Sob GNU GPL

from optparse import OptionParser
import sys

usage = "usage: %prog [options] [mensagem]"

# Objeto que manipula a linha de comando
parser = OptionParser()
parser.add_option("-o", "--saida", dest="arquivo_saida", help="Imprime em arquivo",metavar="ARQUIVO")
parser.add_option("-e", "--encripta", action="store_true", dest="encriptar",default=False,help="Encriptar mensagem",metavar="ENCRIPTA")
parser.add_option("-d", "--decripta", action="store_true", dest="decriptar",default=False,help="Decriptar mensagem",metavar="DECRIPTA")
parser.add_option("-c", "--chave", action="store", dest="chave",type='int',help="Chave utilizada para encriptar ou decriptar a mensagem",metavar="CHAVE")
(options, args) = parser.parse_args()


if options.encriptar and options.decriptar:
    print 'Opções conflitantes -e e -d'
if not options.encriptar and not options.decriptar:
    options.encriptar=True
if options.chave == None:
    print 'É necessaria uma chave para a ação selecionada.\nTente passar uma atraves do parametro -c'
    sys.exit(1)    
if options.chave > 25 or options.chave < 1:
    print 'A chave deve ser de 1 a 25'
    print options.chave
    sys.exit(1)

if args == ['']:
    mensagem=raw_input()
else:
    mensagem=''
    for string in args:
        mensagem+=string+' '

chave=options.chave
mensagem_encriptada=''

if options.encriptar:
    for byte in mensagem:
        if byte.isalpha():
            byte_encriptado=chr(ord(byte)+chave)
            if byte.isupper() and ord(byte_encriptado) > 90:
                byte_encriptado=chr(ord(byte_encriptado)-26)
            if byte.islower() and ord(byte_encriptado) > 122:
                byte_encriptado=chr(ord(byte_encriptado)-26)
        else:
            byte_encriptado=byte
        mensagem_encriptada+=byte_encriptado
else:
    for byte in mensagem:
        if byte.isalpha():
            byte_encriptado=chr(ord(byte)-chave)
            if byte.isupper() and ord(byte_encriptado) < 65:
                byte_encriptado=chr(ord(byte_encriptado)+26)
            if byte.islower() and ord(byte_encriptado) < 97:
                byte_encriptado=chr(ord(byte_encriptado)+26)
        else:
            byte_encriptado=byte
        mensagem_encriptada+=byte_encriptado
        
print mensagem_encriptada

Scripts recomendados

MsgCoder - Codificador de mensagens

Mkpass - Função para gerar senhas aleatórias

Krypt - Função de criptografia por chave de qualquer tamanho

Cracker De Senha (cupp.py) 1.0

Adivinhar Número


  

Comentários
[1] Comentário enviado por albertguedes em 30/01/2007 - 23:31h

Bem legalzinho, mas faça mais comentarios que todo script publicado tambem serve para aprendizado, e nao comentamos, fica dificil ou mesmo impossivel entende-los, ok ? É só um toque, de resto dou meus parabéns.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts