Крипто-форум crprogram.16mb.com

Програмування на Object Pascal, Lazarus, криптографія, криптоаналіз, шифри, вихідні коди, вирішення задач, приклади програм

Часовий пояс: UTC десь + 2 години




Розпочати нову тему Відповісти  [ 16 повідомлень ] 
Автор Повідомлення
 Заголовок повідомлення: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Проста програма для шифрування текстових рядків.

(Перша версія була розроблена у 2010 році на основі алгоритму RC4 для шифрування текстових рядків і передачі їх через соціальні мережі - vkontakte[Вконтакте])

Хочу представити поліпшену версію, доопрацьовано алгоритм шифрування.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
функції

Код:
function mxmz(s:string):string;

- шифрування.
Код:
function mxmr(s:string):string;

- дешифрування.

Код:
par:=edit1.Text;

-пароль, (жовте поле).


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Код:
const
HexValues='0123456789ABCDEF';
sbox: array[0..255] of byte = (
$3D, $08, $82, $77, $CE, $51, $2E, $6E, $A2, $8F, $C8, $10, $3E, $7E, $E7, $33,
$7C, $48, $1E, $93, $EB, $C0, $A9, $A1, $9F, $3C, $A6, $AA, $0F, $40, $4A, $96,
$46, $30, $69, $1D, $DC, $1B, $CF, $FC, $0B, $57, $52, $01, $16, $80, $C1, $E3,
$BA, $B2, $DA, $F7, $C2, $3F, $4D, $3A, $09, $76, $6C, $D7, $B6, $91, $FB, $C5,
$BD, $B7, $15, $00, $36, $FE, $A3, $44, $53, $07, $19, $1F, $D9, $74, $22, $5C,
$E8, $90, $B9, $ED, $BE, $F6, $A4, $F8, $9B, $98, $CB, $AD, $6B, $EC, $87, $EF,
$2D, $65, $2A, $7F, $39, $41, $F5, $AF, $E1, $81, $61, $28, $9E, $62, $E6, $D5,
$32, $1A, $4C, $7B, $AB, $E0, $C9, $92, $35, $9C, $B5, $94, $BC, $72, $26, $B4,
$F4, $66, $8C, $B3, $FD, $02, $64, $AE, $DF, $D3, $68, $06, $8E, $B1, $CA, $D0,
$63, $B8, $AC, $50, $6D, $29, $18, $03, $60, $0D, $78, $D4, $EE, $20, $7A, $42,
$4F, $1C, $2F, $5A, $24, $55, $95, $3B, $31, $59, $E4, $5E, $73, $05, $DB, $43,
$C3, $A0, $F0, $8A, $F1, $70, $EA, $2C, $6F, $A5, $12, $37, $A8, $C6, $38, $FA,
$88, $8D, $DE, $13, $86, $C4, $0E, $9A, $C7, $F3, $83, $45, $BB, $D8, $23, $99,
$84, $56, $8B, $4E, $0A, $A7, $34, $9D, $2B, $54, $47, $04, $27, $58, $17, $5D,
$85, $D1, $0C, $49, $D6, $75, $5F, $E5, $F2, $89, $6A, $7D, $67, $25, $CD, $71,
$D2, $5B, $CC, $FF, $DD, $E2, $21, $97, $4B, $BF, $79, $F9, $14, $E9, $11, $B0
);


var
  Form1: TForm1;
  par:string;


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Код:
function HexToInt(Hex: string): integer;
begin
Result := 16*(Pos(Upcase(Hex[1]), HexValues)) + Pos(Upcase(Hex[2]), HexValues)-17;
end;



function mxmz(s:string):string;
var
i,j,n,m,g,h,np,v,dd:integer;
sa,VI:string;
t,K:byte;
pa:array[0..47]of byte;
W:array[0..255]of byte;
C,P:array of byte;

begin

///////////////////////////////////////////
for i:=0 to 31 do
pa[i]:=175;

np:=length(par);

if (np>31)then np:=31;

for i:=1 to np do
  pa[i-1]:=ord(par[i]);

N:=length(s);
if N>32000 then
begin
  N:=32000;
  showmessage('Длина текста больше 32кБ');
end;

SetLength(P,n+1);
SetLength(C,n+1);
for i:=1 to n do
  P[i]:=ord(s[i]);

randomize;
VI:='';
for i:=32 to 47 do
begin
  pa[i]:=random(255);
  //pa[i]:=175;   //для анализа, тогда VI = const = 175;
  VI:=VI+''+inttohex(pa[i],2);
end;
sa:=VI+'';

for i:=32 to 47 do
  pa[i]:=pa[i] xor pa[i-32];
for i:=21 to 31 do
  pa[i]:=(pa[i-21] + 123) mod 256;

for i:=0 to 255 do
W[i]:=Sbox[i];
///////////////////////////////////////////

j:= pa[7];
g:= pa[37];
for i:= 0 to 255 do
begin
  j:= (j + W[i] + pa[i mod 48]) mod 256;
  t:=W[i];
  W[i]:=W[j];
  W[j]:=t;
  g:= (g + W[g] + pa[i mod 48]) mod 256;
  t:=W[j];
  W[j]:=W[g];
  W[g]:=t;
end;

///////////////////////////////////////////
j:= 0;
i:= 0;
g:= pa[43];
h:= pa[5];
dd:=17+(pa[9] mod 16);
for m:=1 to N do
begin
  for v:=1 to dd do
  begin
    i:= (i + 1) mod 256;
    j:= (j + W[i] + pa[i mod 48]) mod 256;
    t:=W[i];
    W[i]:=W[j];
    W[j]:=t;

    h:= (h + W[j] + 1) mod 48;
    g:= (g + pa[h]+3) mod 48;
    t:=pa[h];
    pa[h]:=pa[g];
    pa[g]:=t;
  end;

  K:= W[(W[i] + W[j]) mod 256];

  C[m]:=P[m] xor K;
end;

///////////////////////////////////////////

for i:=1 to n do
  sa:=sa+''+inttohex(C[i],2);
C:=nil;
P:=nil;

result:=sa;
end;


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Код:
///////////////////////////////////////////////////////////////////////////////////
function mxmr(s:string):string;
var
i,j,n,m,g,h,np,v,dd:integer;
sa,df,VI,x:string;
t,K:byte;
pa:array[0..47]of byte;
W:array[0..255]of byte;
C,P:array of byte;

begin

///////////////////////////////////////////
for i:=0 to 31 do
pa[i]:=175;

np:=length(par);

if (np>31)then np:=31;
for i:=1 to np do
  pa[i-1]:=ord(par[i]);

N:=((length(s)-32)div 2)-1;

SetLength(P,n+1);
SetLength(C,n+1);

j:=33;
for i:=1 to n do
begin
  df:=s[j]+s[j+1];
  P[i]:=hextoint(df);
  j:=j+2;
end;


j:=1;
for i:=32 to 47 do
begin
  df:=s[j]+s[j+1];
  pa[i]:=hextoint(df);
  j:=j+2;
end;

for i:=32 to 47 do
  pa[i]:=pa[i] xor pa[i-32];
for i:=21 to 31 do
begin
  pa[i]:=((pa[i-21] + 123) mod 256);
end;

for i:=0 to 255 do
W[i]:=Sbox[i];
///////////////////////////////////////////

j:= pa[7];
g:= pa[37];
for i:= 0 to 255 do
begin
  j:= (j + W[i] + pa[i mod 48]) mod 256;
  t:=W[i];
  W[i]:=W[j];
  W[j]:=t;
  g:= (g + W[g] + pa[i mod 48]) mod 256;
  t:=W[j];
  W[j]:=W[g];
  W[g]:=t;
end;

///////////////////////////////////////////
j:= 0;
i:= 0;
g:= pa[43];
h:= pa[5];
dd:=17+(pa[9] mod 16);
for m:=1 to N do
begin
  for v:=1 to dd do
  begin
    i:= (i + 1) mod 256;
    j:= (j + W[i] + pa[i mod 48]) mod 256;
    t:=W[i];
    W[i]:=W[j];
    W[j]:=t;

    h:= (h + W[j] + 1) mod 48;
    g:= (g + pa[h]+3) mod 48;
    t:=pa[h];
    pa[h]:=pa[g];
    pa[g]:=t;
  end;
  K:= W[(W[i] + W[j]) mod 256];

  C[m]:=P[m] xor K;
end;

///////////////////////////////////////////

sa:='';
for i:=1 to n do
sa:=sa+''+char(C[i]);
C:=nil;
P:=nil;
result:=sa;
end;
///////////////////////////////////////////////////////////////////////////////////



Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Скріншот програми:
Зображення
Собственно исходники:
Приєднання файлів:
SRC4 isxodniki (source).rar [10.37 KiB]
Скачали: 106


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
І власне сам .exe:
Приєднання файлів:
SRC4.exe.rar [175.48 KiB]
Скачали: 106


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Також є java-script шифрування:

Реалізація на java-script.

Скачуємо документ, зберігаємо, і відкриваємо:
Приєднання файлів:
SRC4-java.rar [2.86 KiB]
Скачали: 96


Приклад на сайті.

Якщо кому потрібно переробити алгоритм, звертайтесь.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 4
Спасибо, взял исходник для шифрования данных в субд с клиента на delphi
Зачем нужна эта проверка:
Код:
N:=length(s);
if N>32000 then
begin
  N:=32000;
  showmessage('Длина текста больше 32кБ');
end;


зачем на выходе:
Код:
par:='Hd%RWshk()#mkd;LMS[#shngbvsGvs^#bnsm,(@#nsw';


эээ...
а че русский не раскодирует???


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Ограничение длины - просто при большой длине текста программа работает дольше вследствии записи результата в ричьэдит - а она изначально была предназначена для коротких текстовых строк. Можете выбросить это ограничение при работе с файлами или данными внутри вашей программы.

Чтобы в переменную записать "мусор" при выходе, на всякий пожарный случай.

С кирилицей работает, у вас скорей всего Делфи выше 7-ки - проверте кодировку.
(в принципе программа работает с таблицей ASCII, но можно шифровать и байты - 00..FF).


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 4
Object Pascal xe2.
А чтоб в аски перевести, это много делов?


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 26
Используйте memo или другой элемент без поддержки юникода - в нем скорей всего беда.
Если нужен именно юникод - работате с байтами,
по сути вход и результат в таблицах
Код:
C,P:array of byte;

тип byte, а дальше переводить можно во все что угодно, хоть в картинки.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 4
Да нет, запускал exe-шник вашей программы и при расшифровке выдает хрень
поэтому пока не тороплюсь с переносом в свою прогу)
вот, например, расшифровка слова МИР со стандартным паролем - <8@


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Дивно, у мене нормально працює. Можливо проблема зі шрифтами. А інші слова?


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 4
аа, все. понял) я запускал exe-ик, откомпиленый через мою хе2
автор, спасибо за исходники! ;)


Повернутися наверх
  
 
 Заголовок повідомлення: Re: SRC4, шифрування vkontakte
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 18
Цікава стаття про захист інформації в GOOGLE CALENDAR од чужих завидющих очей :) .
Я спробую написати шифрування ФКантактє за допомогою USER SCRIPT, бо інколи воно потрібно.


Повернутися наверх
  
 
Показати повідомлення за:  Сортувати по:  
Розпочати нову тему Відповісти  [ 16 повідомлень ] 

Часовий пояс: UTC десь + 2 години



cron
Роwеrеd bу рhрВB® аnd Hostinger web hosting