Function Base22Encoder(Chaine : String) : String; Const Code22 = 'ABCDEFGHJKLMNPQRSTUWXY'; Var Base10, i, k, Temp, Mul, Modu, Posi : Integer; Base22 : String; Begin Base10 := 0; For i := 1 to Length(Chaine) Do Begin If Pos(Chaine[i],Code22) <> 0 Then Base10 := Base10 + Pos(Chaine[i],Code22)-1; End; Base22 := ''; Modu := (Base10 Mod 22); For i := 1 to Length(Chaine) Do Begin Mul := i * Modu; k := (Modu * Modu) + Round(Mul * 3.259); Posi := Pos(Chaine[i],Code22); If Posi = 0 then Posi := 1; Temp := Posi - 1 - k; If Temp > 0 then Temp := Temp Mod 22; While Temp < 0 Do Temp := Temp + 22; Base22 := Base22 + Code22[Temp+1]; End; result := Base22; End;