Discussion:
PHP Crypt w Delphi
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
k***@wp.pl
2017-06-14 08:57:06 UTC
Permalink
Delphi XE2

Potrzebuję odpowiednik funkcji Crypt z PHP dla Delphi.

Może ktoś ma?
Jan Drawski
2017-06-14 09:27:00 UTC
Permalink
Post by k***@wp.pl
Delphi XE2
Potrzebuję odpowiednik funkcji Crypt z PHP dla Delphi.
Może ktoś ma?
Korzystałem z (nie jestem pewien jak się pokrywa z PHP):
DCPcrypt v2.0 written by David Barton (***@cityinthesky.co.uk)

Gdyby był problem ze znalezieniem w necie to mogę podesłać na e-maila.
--
Pozdrawiam
Janek
Jan Drawski
2017-06-14 09:33:37 UTC
Permalink
Post by Jan Drawski
Gdyby był problem ze znalezieniem w necie to mogę podesłać na e-maila.
Prawdopodobnie pobierałem stąd:
http://www.cityinthesky.co.uk/opensource/dcpcrypt/
--
Pozdrawiam
Janek
k***@wp.pl
2017-06-14 10:50:15 UTC
Permalink
Post by Jan Drawski
Post by Jan Drawski
Gdyby był problem ze znalezieniem w necie to mogę podesłać na e-maila.
http://www.cityinthesky.co.uk/opensource/dcpcrypt/
A jakiego trzeba użyć algorytmu (TDCP_hashclass)
aby otrzymać dokładnie to co w PHP
W php uzywam tego tak
crypt('mypassword',12);
Jan Drawski
2017-06-14 11:41:10 UTC
Permalink
Post by k***@wp.pl
A jakiego trzeba użyć algorytmu (TDCP_hashclass)
aby otrzymać dokładnie to co w PHP
W php uzywam tego tak
crypt('mypassword',12);
http://php.net/manual/en/function.crypt.php
Nie wiem jakiego algorytmu TDCP_hashclass ale na powyższej stronie jest
coś o DES i MD5 i tym bym się sugerował.

Używam jeszcze: TurboPower LockBox 3
Trochę informacji na ten temat:
https://forums.embarcadero.com/thread.jspa?messageID=778638
Z tego co spojrzałem to używany jest w nim też DCPcrypt.

Jak dalej będziesz miał problem to pisz a postaram się coś znaleźć.
--
Pozdrawiam
Janek
Jan Drawski
2017-06-14 11:46:35 UTC
Permalink
W TurboPower LockBox 3 można ustawić (z podanej stroony Embarcadero):
FCodec.BlockCipherId := Format(AES_ProgId, [256]);

wybrane formaty:
MD5_ProgId = 'native.hash.MD5';
DES_ProgId = 'native.DES';
TripleDES_ProgId = 'native.3DES.2';
TripleDES_KO1_ProgId = 'native.3DES.1';
--
Pozdrawiam
Janek
k***@wp.pl
2017-06-19 10:32:30 UTC
Permalink
Post by Jan Drawski
FCodec.BlockCipherId := Format(AES_ProgId, [256]);
MD5_ProgId = 'native.hash.MD5';
DES_ProgId = 'native.DES';
TripleDES_ProgId = 'native.3DES.2';
TripleDES_KO1_ProgId = 'native.3DES.1';
Manual PHP

crypt() will return a hashed string using the standard Unix DES-based
algorithm or alternative algorithms that may be available on the system.

robię tak
function InternalEncrypt(): String;
var
i: integer;
Cipher: TDCP_rc4;
KeyStr: string;
begin
KeyStr:= password;
Cipher:= TDCP_rc4.Create(Self);
Cipher.InitStr(KeyStr,TDCP_haval); // initialize the cipher
with a hash of the passphrase
result:=Cipher.EncryptString(password);
Cipher.Burn;
Cipher.Free;
end;
Użyłem wszystkich z katalogu Hashes i nie działa
k***@wp.pl
2017-06-21 06:26:00 UTC
Permalink
Sprawa rozwiązana

link do projektu UDESCryp.pas
http://www.magsys.co.uk/delphi/unixcrypt.asp

działa w moim zastosowaniu

try
DESCrypt1 := TDESCrypt.Create (self) ;
with DESCrypt1 do
begin
Input:=AnsiString(password);
Salt:=AnsiString('12');
if execute then haslo:=String(Output);
end;
finally
DESCrypt1.Free;
end;

Dzięki za podpowiedzi.
Jan Drawski
2017-06-21 08:18:11 UTC
Permalink
Post by k***@wp.pl
działa w moim zastosowaniu
Cieszę się, może kiedyś mi albo jeszcze komuś się przyda.
Możesz jeszcze sprawdzić czy w Delphi i PHP jest tak samo jak np. w
haśle są polskie znaki. O ile mnie pamięć nie myli to w PHP mogą być
problemy...
--
Pozdrawiam
Janek
k***@wp.pl
2017-06-21 08:30:36 UTC
Permalink
Post by Jan Drawski
Post by k***@wp.pl
działa w moim zastosowaniu
Cieszę się, może kiedyś mi albo jeszcze komuś się przyda.
Możesz jeszcze sprawdzić czy w Delphi i PHP jest tak samo jak np. w
haśle są polskie znaki. O ile mnie pamięć nie myli to w PHP mogą być
problemy...
Chyba problem jest w przypadku UNICODE.
Jan Drawski
2017-06-21 08:41:22 UTC
Permalink
Post by k***@wp.pl
Chyba problem jest w przypadku UNICODE.
O ile mnie pamięć nie myli to w PHP "zwykły" znak ma 1 bajt a np.
polskie diakrytyczne mają więcej i tu mogą być problemy...
--
Pozdrawiam
Janek
Loading...