-
Data: 2009-09-08 12:26:35
Temat: Zaszyfrowane CAPICOMem, jak odszyfrować CryptoAPI?
Od: "gosmo" <t...@m...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Witam, mam zaszyfrowane dane poniższym kodem:
EncryptedData := CreateOleObject('CAPICOM.EncryptedData');
try
EncryptedData.Algorithm.KeyLength :=
CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS;
EncryptedData.Algorithm.Name := CAPICOM_ENCRYPTION_ALGORITHM_3DES;
EncryptedData.Content := AString;
EncryptedData.SetSecret(ASecret);
Result := EncryptedData.Encrypt;
finally
EncryptedData := Null;
end;
Aby odszyfrować to za pomocą CryptoAPI wykombinowałem takiego potworka:
function DecodeWC(AString: WideString; ASecret: WideString = ''):
WideString;
var
hProv : Cardinal;
hHash : Cardinal;
hKey : Cardinal;
dwBlobLen : Cardinal;
pBuffer : PByte;
begin
if (not CryptAcquireContext(hProv, Nil, NIL, PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT)) and (not CryptAcquireContext(hProv, Nil, Nil,
PROV_RSA_FULL, CRYPT_VERIFYCONTEXT OR CRYPT_NEWKEYSET)) then
RaiseLastOSError
else
try
if not CryptCreateHash(hProv, CALG_MD5, 0, 0, hHash) then
RaiseLastOSError
else
try
if not CryptHashData(hHash, PByte(@ASecret[1]), Length(ASecret) * 2,
0) then RaiseLastOSError;
if not CryptDeriveKey(hProv, CALG_3DES, hHash, 0, hKey) then
RaiseLastOSError
else
try
dwBlobLen := Length(AString) * 2;
pBuffer := PByte(@AString[1]);
if not CryptDecrypt(hKey, 0, True, 0, pBuffer, dwBlobLen) then
RaiseLastOSError;
finally
CryptDestroyKey(hKey);
end;
finally
CryptDestroyHash(hHash);
end;
finally
CryptReleaseContext(hProv, 0);
end;
end;
Ale mimo, że używałem chyba wszystkich możliwych algorytmów hashujących to
nadal dostaję komunikat złych danych przy CryptDecrypt.
Jak odszyftować te dane za pomocą CryptoAPI?
Następne wpisy z tego wątku
- 10.09.09 20:13 Real Hacker
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-25 Organizacja religijna i nielegalna sprzedaż
- 2026-01-25 Tego "księdza" powinni wywalić z kościołai z pracy w kościele
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- 2026-01-25 W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- 2026-01-25 rozmiar skrzyżowania
- 2026-01-24 Do czego prowadzą REGULACJE opiekuńczego państwa
- 2026-01-23 Stop na zielonym
- 2026-01-23 KSEFowy trolling
- 2026-01-23 KSEFowy trolling
- 2026-01-23 Warszawa => Software Development Team Leader (C#/.Net) <=
- 2026-01-23 Toruń => Sales Engineer (Database background) <=
- 2026-01-23 Toruń => Preseles Inżynier (background baz danych) <=
- 2026-01-23 antena gsm - kabel - antena gsm




Nowa era rynku nieruchomości: 9 prognoz na 2026 rok