Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #21  
Старый 20.05.2007, 15:29
Maverick

 
Сообщений: n/a

товарищи, кто может выложить колд работающей программы? я устал уже мучаться с ней. не пойму в чем косяк. расшифровывается какая-то чушь...
  #22  
Старый 29.05.2007, 13:51
незарегистрированный

 
Сообщений: n/a

Сообщение от Maverick Посмотреть сообщение
товарищи, кто может выложить колд работающей программы? я устал уже мучаться с ней. не пойму в чем косяк. расшифровывается какая-то чушь...
Encode.py
import random

def NOD(a,b):
if b == 0: return a
else: return NOD(b,a%b)

def njut(a,n,x0):
rest=1
rest2=1
res = ((n-1)*(x0**n)+a)/(n*(x0**(n-1)))
while rest!=res and rest2!=res:
rest2=rest
rest=res
#print res,
res = ((n-1)*(res**n)+a)/(n*(res**(n-1)))
rr=[]
if res**n==a:
rr.append(res)
rr.append(1)
return rr
elif res**n>a:
rr.append(res-1)
rr.append(0)
return rr
else:
rr.append(res)
rr.append(0)
return rr


def powmod(a, k, n):
b=1
while k!=0:
if k%2==0:
k/=2
a = (a*a)%n
else:
k-=1
b = (b*a)%n
return b


def euclide(a,b):
res=[]
if b==0:
d=a
res.append(d)
x=1
res.append(x)
y=0
res.append(y)
return res

x2=1
x1=0
y2=0
y1=1
while b>0:
q=a/b
r=a-q*b
x=x2-q*x1
y=y2-q*y1
a=b
b=r
x2=x1
x1=x
y2=y1
y1=y
d=a
res.append(d)
x=x2
res.append(x)
y=y2
res.append(y)
return res

def obrat(a,n):
rr=euclide(a,n)
if rr[0]==1: return rr[1]
else: return 'No'

def isprime(n):
if n%2==0: return 0
prime = 1
q=n-1
q=q/2
s=1
while q%2==0:
q/=2
s+=1
t=(n-1)/(2**s)
k=20
while k>0:
a=random.randint(2,n-1)
if powmod(a,n-1,n)!=1:
prime=0
return prime
if powmod(a,t,n)!=1:
f=0
for i in range(s):
if powmod(a,t*int(pow(2,i)),n)==n-1:
f=1
if f==0:
prime=0
return prime
k-=1
return prime

def gener():
p=random.randint(10000000000000000000000000,100000 00000000000000000000000000000000000000000000000000 000000000000000000000)
f=isprime(p)
while f!=1:
p+=1
f=isprime(p)
return p

def encode(c): n=260680441335491017114096517320148455922987690579 5548983943285892543699415631672990172947241
p=875902597
q=297613504319237698428808879670610744773242966625 8369346909569549482337492865856853
c=665396199446009644060862983607663243245250235823 37541905544585283835838162926473662385485
fi=(p-1)*(q-1)
print fi
e=65537
ot=0
d=obrat(e,fi)
if d<0: d=fi+d
print d
ot=powmod(c,d,n)
print ot
res=[]
while ot>0:
ost=ot%256
res.append(ost)
ot-=ost
ot/=256
return res
f=open('key.txt','w')
p=gener()
print "p = ",p
q=gener()
print "q = ",q
n=p*q
print "n = ",n
f.write(str(n)+'\n')
e=65537
print "e = ",e
fi=(p-1)*(q-1)
d=obrat(e,fi)
if d<0: d=fi+d
print "d = ",d
f.write(str(d)+'\n')
f.close()
nlen=len(str(n))
modlen=nlen/3
fil=raw_input('File-ishodnik: ')
ist=open(fil,'rb')
filcr="Encrypt_"+fil
cry=open(filcr,'wb')
res=ist.read(modlen)
while res!='':
intr = 1
for i in range(len(res)):
intr*=256
intr+=ord(res[i])
intr=powmod(intr,e,n)
res=[]
while intr>0:
ost=intr%256
res.append(ost)
intr-=ost
intr/=256
crypt=''
for i in range(len(res)):
crypt+=chr(res[len(res)-1-i])
if len(crypt)>nlen:
print "!!!"
cry.write(str(len(crypt)))
cry.write('.')
cry.write(crypt)
res=ist.read(modlen)
ist.close()
cry.close()
print ' '
raw_input('Success coding!')



======================
[b]Decrypt.py[b]

import random

def NOD(a,b):
if b == 0: return a
else: return NOD(b,a%b)

def njut(a,n,x0):
rest=1
rest2=1
res = ((n-1)*(x0**n)+a)/(n*(x0**(n-1)))
while rest!=res and rest2!=res:
rest2=rest
rest=res
#print res,
res = ((n-1)*(res**n)+a)/(n*(res**(n-1)))
rr=[]
if res**n==a:
rr.append(res)
rr.append(1)
return rr
elif res**n>a:
rr.append(res-1)
rr.append(0)
return rr
else:
rr.append(res)
rr.append(0)
return rr


def powmod(a, k, n):
b=1
while k!=0:
if k%2==0:
k/=2
a = (a*a)%n
else:
k-=1
b = (b*a)%n
return b


def euclide(a,b):
res=[]
if b==0:
d=a
res.append(d)
x=1
res.append(x)
y=0
res.append(y)
return res

x2=1
x1=0
y2=0
y1=1
while b>0:
q=a/b
r=a-q*b
x=x2-q*x1
y=y2-q*y1
a=b
b=r
x2=x1
x1=x
y2=y1
y1=y
d=a
res.append(d)
x=x2
res.append(x)
y=y2
res.append(y)
return res

def obrat(a,n):
rr=euclide(a,n)
if rr[0]==1: return rr[1]
else: return 'No'

def isprime(n):
if n%2==0: return 0
prime = 1
q=n-1
q=q/2
s=1
while q%2==0:
q/=2
s+=1
t=(n-1)/(2**s)
k=20
while k>0:
a=random.randint(2,n-1)
if powmod(a,n-1,n)!=1:
prime=0
return prime
if powmod(a,t,n)!=1:
f=0
for i in range(s):
if powmod(a,t*int(pow(2,i)),n)==n-1:
f=1
if f==0:
prime=0
return prime
k-=1
return prime

def gener():
p=random.randint(10000000000000000000000000,100000 00000000000000000000000000000000000000000000000000 0000000)
f=isprime(p)
while f!=1:
p+=1
f=isprime(p)
return p

f=open('key.txt','r')
n=int(f.readline())
d=int(f.readline())

nlen=len(str(n))
modlen=nlen/3

fil=raw_input('Encrypted file: ')
ist=open(fil,'rb')
fildec="Decrypt_"+fil
decry=open(fildec,'wb')

kol=''
ko=ist.read(1)
if ko!='':
while ko!='.':
kol+=ko
ko=ist.read(1)

kolvo=int(kol)

res=ist.read(kolvo)
while res!='':
intr = 0
if res!='':
for i in range(len(res)):
intr*=256
intr+=ord(res[i])

intr=powmod(intr,d,n)
res=[]
while intr>1:
ost=intr%256
res.append(ost)
intr-=ost
intr/=256

decrypt=''
for i in range(len(res)):
decrypt+=chr(res[len(res)-1-i])

# if len(decrypt)!=modlen:
# print "!!!"

decry.write(decrypt)

kol=''
ko=ist.read(1)
if ko!='':
while ko!='.':
kol+=ko
ko=ist.read(1)
if kol=='':
break
kolvo=int(kol)
res=ist.read(kolvo)


ist.close()
decry.close()



#ot=powmod(J,d,n)
#res=[]
#while ot>0:
# ost=ot%256
# res.append(ost)
# ot-=ost
# ot/=256

#ot=''
#for i in range(len(res)):
# ot+=chr(len(res)-1+i)

#ff=open(fil,'wb')
#ff.write(ot)
#ff.close()

raw_input('Success encoding!')



code for Python
  #23  
Старый 18.06.2008, 00:29
Анастасия

 
Сообщений: n/a

а может можно еще выложить код для Delphi.... маюсь маюсь... получается кодирование.. а вот раскодирование ни в какую какие-то иероглифы...эх....
  #24  
Старый 21.09.2008, 20:14
гость

 
Сообщений: n/a

хороший сай по программированию на ассемблере www.skachivaem.ru
  #25  
Старый 13.11.2008, 10:47
Wazuuup

 
Сообщений: n/a

Народ, может кто-нибудь выложит рабочий код на с++, а? А то получается бредятина какая-то=\
  #26  
Старый 29.11.2008, 02:16
гость

 
Сообщений: n/a

Люди добрые есть у кого-нибудь исходники на С?

Нужна помощь, погибаю...
  #27  
Старый 21.12.2008, 23:55
гость

 
Сообщений: n/a

В таком виде код нечитаем!!! >(
  #28  
Старый 22.08.2009, 14:34
гость

 
Сообщений: n/a

ПОСМОТРИ ТУТ http://vse-shifri.ru
  #29  
Старый 22.08.2009, 15:14
гость

 
Сообщений: n/a

Можно найти здесь http://vse-shifri.ru
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с использованием русского алфавита в с++ elle Реализация, исходники, языки 9 17.03.2008 21:19