Program S12;
Const
p = 17;
q = 19;
e = 5;
Type
Tab = array [1..20] Of longint ;
Var
msg : string;
T : Tab;
N,i : Byte;
//*************************************
Procedure saisi_msg(Var msg:String);
Var
i,l : integer;
x : boolean;
Begin
Repeat
x := false;
write('Message à crypter : ');
readln(msg);
l := length(msg);
If l=0 Then
x := false
Else
Begin
i := 1;
While (upcase(msg[i]) In ['A'..'Z']) And (i<=length(msg)) Do
i := i+1;
If i>l Then
x := true;
End;
Until x;
End;
//*************************************
Procedure Remplir(Var T:tab ; msg:String ; Var l:byte);
Var
i,c,o : byte;
Begin
l := length(msg) ;
For i := 1 To l Do
Begin
c := ord(msg[i]);
If c<=90 Then
o := c-64
Else o := c-96;
T[i] := o;
End;
End;
//*************************************
Function puiss(n:byte) : longint;
Var
i : byte;
p : longint;
Begin
p := 1;
For i :=1 To e Do
p := p*n;
puiss := p
End;
//*************************************
Procedure Crypt(Var T:tab ; n:byte);
Var
i : byte;
Begin
For i :=1 To n Do
T[i] := puiss(T[i]) Mod (p*q) ;
End;
//*************************************
Begin
Saisi_msg(msg);
Remplir(T,msg,N);
Crypt(T,N);
For i :=1 To n Do
Write(T[i]:6);
End.
Inscription à :
Publier les commentaires (Atom)