Maple-procedures bij RSA
to_number | from_number ][ terug naar RSA
Hieronder staan de twee Maple-procedures waarmee omzettingen ten behoeve van eenvoudige RSA-coderingen kunnen worden bewerkstelligd.
to_number - omzetting van een tekst-string naar een getal
>
to_number := proc(st) > local ll,nn,ss,ii,num; > num := table(['a'=1,'b'=2,'c'=3,'d'=4,'e'=5,'f'=6,'g'=7,'h'=8,'i'=9,'j'=10,'k'=11,/ 'l'=12,'m'=13,'n'=14,'o'=15,'p'=16,'q'=17,'r'=18,'s'=19,'t'=20,'u'=21,'v'=22,'w'=23,'x'=24,'y'=25,'z'=26,'` `'=27]): > if not type(st,string) then ERROR(`wrong number (or type) of arguments`) fi; > ll:=length(st); > if ll= 0 then RETURN(0) fi; > nn:=1; > for ii from 1 to ll do > ss:=num[substring(st,ii..ii)]; > if(not type(ss,numeric)) then ERROR(`wrong number (or type) of arguments`) fi; > nn:=100*nn+ss; > od; > nn-10^(2*ll); > end: |
from_number - omzetting van een getal naar een tekst-string
>
from_number := proc(nn) > local ss,mm,ll,ii,ans,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,` `,alpha; > alpha:= table([1=a,2=b,3=c,4=d,5=e,6=f,7=g,8=h,9=i,10=j,11=k,12=l,13=m,14=n,15=o,16=p,/ 17=q,18=r,19=s,20=t,21=u,22=v,23=w,24=x,25=y,26=z,27=` `]): > mm:=nn; > if(not type(nn,integer)) then ERROR(`wrong number (or type) of arguments`) fi; > ll:=floor(trunc(evalf(log10(mm)))/2)+1; > ans:=``; > for ii from 1 to ll do > mm:=mm/100; > ss:=alpha[frac(mm)*100]; > if(not type(ss,string)) then ERROR(`wrong number (or type) of arguments`) fi; > ans:=cat(ss, ans); > mm:=trunc(mm) > od; > ans; > end: |
Klik hier om terug te gaan naar de tekst.
[rsa-proc.htm] laatste wijziging op: 20-02-99