|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Использование DcpCrypt
Уважаемые знатоки, не подскажите ли, как при помощи библиотеки DcpCrypt решить задачу:
Зашифровать (расшифровать) данные по алгоритму DEC-CBC c ключом ="0000000000000000" (используется только 56 бит) и вектором "0000000000000000" (8 байт - используется все 64 бит) Используется ANSII кодировка Делаю расшифровку так: Код:
function DoDecrypt: string; var Cipher: TDCP_des; KeyStr: string; TextIn, TextOut : String; Vector : array of Byte; src, enc, b64: TBytes; I,index, lunghezza, blocksize, paddingsize: integer; begin SetLength(Vector, 8); for i:=0 To 7 do Vector[i] := 0; KeyStr:='00000000'; Cipher := TDCP_des.Create(Nil); Cipher.Init(keystr,Length(keystr)*8, addr(Vector[0])); TextIn := 'pve%`,n_><Y,RH$nphZd)? K JSN\2'; Cipher.InitStr(TextIn,TDCP_sha1); lunghezza := Length(TextIn); index := SizeOf(TextIn); blocksize := Cipher.BlockSize div 8; paddingsize:= blocksize - (lunghezza mod blocksize); Inc(lunghezza, paddingsize); SetLength(TextIn, lunghezza); for index:=paddingsize downto 1 do begin TextIn[lunghezza - index] := char(0); end; index := Length(TextOut); SetLength(TextOut, lunghezza); Cipher.DecryptCBC(TextIn[1], TextOut[1], length(TextIn)); Result:=Cipher.DecryptString(TextOut); End; Но получается абракадабра P.S.: Знаю, что слово 'pve%`,n_><Y,RH$nphZd)? K JSN\2' вполне читаемо должно расшифроваться Последний раз редактировалось Admin, 20.06.2017 в 21:11. |