![]() |
DEC 5 Example in C# konvertieren
Hallo Leute,
kann mir jemand diesen Code in C# Konvertieren ?
Code:
--- uses DECUtil, DECCipher, DECHash, DECFmt; ... var ACipherClass: TDECCipherClass = TCipher_Rijndael; ACipherMode: TCipherMode = cmCBCx; AHashClass: TDECHashClass = THash_Whirlpool; ATextFormat: TDECFormatClass = TFormat_Mime64; AKDFIndex: LongWord = 1; function Encrypt(const AText: String; const APassword: String): String; overload; var ASalt: Binary; AData: Binary; APass: Binary; begin with ValidCipher(ACipherClass).Create, Context do try ASalt := RandomBinary(16); APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex); Mode := ACipherMode; Init(APass); SetLength(AData, Length(AText) * SizeOf(AText[1])); Encode(AText[1], AData[1], Length(AData)); Result := ValidFormat(ATextFormat).Encode(ASalt + AData + CalcMAC); finally Free; ProtectBinary(ASalt); ProtectBinary(AData); ProtectBinary(APass); end; end; function Encrypt(const AText: WideString; const APassword: WideString): WideString; overload; var ASalt: Binary; AData: Binary; APass: Binary; begin with ValidCipher(ACipherClass).Create, Context do try ASalt := RandomBinary(16); APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex); Mode := ACipherMode; Init(APass); SetLength(AData, Length(AText) * SizeOf(AText[1])); Encode(AText[1], AData[1], Length(AData)); Result := ValidFormat(ATextFormat).Encode(ASalt + AData + CalcMAC); finally Free; ProtectBinary(ASalt); ProtectBinary(AData); ProtectBinary(APass); end; end; function Decrypt(const AText: String; const APassword: String): String; overload; var ASalt: Binary; AData: Binary; ACheck: Binary; APass: Binary; ALen: Integer; begin with ValidCipher(ACipherClass).Create, Context do try ASalt := ValidFormat(ATextFormat).Decode(AText); ALen := Length(ASalt) - 16 - BufferSize; AData := System.Copy(ASalt, 17, ALen); ACheck := System.Copy(ASalt, ALen + 17, BufferSize); SetLength(ASalt, 16); APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex); Mode := ACipherMode; Init(APass); SetLength(Result, ALen div SizeOf(AText[1])); Decode(AData[1], Result[1], ALen); if ACheck <> CalcMAC then raise Exception.Create('Invalid data'); finally Free; ProtectBinary(ASalt); ProtectBinary(AData); ProtectBinary(ACheck); ProtectBinary(APass); end; end; function Decrypt(const AText: WideString; const APassword: WideString): WideString; overload; var ASalt: Binary; AData: Binary; ACheck: Binary; APass: Binary; ALen: Integer; begin with ValidCipher(ACipherClass).Create, Context do try ASalt := ValidFormat(ATextFormat).Decode(AText); ALen := Length(ASalt) - 16 - BufferSize; AData := System.Copy(ASalt, 17, ALen); ACheck := System.Copy(ASalt, ALen + 17, BufferSize); SetLength(ASalt, 16); APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex); Mode := ACipherMode; Init(APass); SetLength(Result, ALen div SizeOf(AText[1])); Decode(AData[1], Result[1], ALen); if ACheck <> CalcMAC then raise Exception.Create('Invalid data'); finally Free; ProtectBinary(ASalt); ProtectBinary(AData); ProtectBinary(ACheck); ProtectBinary(APass); end; end; ... procedure TForm1.Button1Click(Sender: TObject); var s, k: WideString; begin s := 'The quick brown fox jumps over the lazy dog'; k := 'password'; Memo1.Lines.Clear; Memo1.Lines.Add( 'Encode Test: ' + Encrypt(s, k) + sLineBreak + 'Decode Test: ' + Decrypt(Encrypt(s, k), k) ); end; |
AW: DEC 5 Example in C# konvertieren
|
AW: DEC 5 Example in C# konvertieren
Zitat:
Oder: Schau Dir die MSDN Doku von System.Security.Cryptography an. Dort findest Du diverse symmetrische Verschlüsselungen (unter anderem auch ![]() |
AW: DEC 5 Example in C# konvertieren
Auch so wird das problematisch, da eine der berühmt/berüchtigten proprietären DEC-Verschlüsselungsmethoden verwendet wird.
Zitat:
Und die restlichen Probleme sind natürlich nicht verschwunden:
![]() |
AW: DEC 5 Example in C# konvertieren
Ist das tatsächlich eine Hausaufgabe von deinem Informatiklehrer?
Sinnfreier geht es nämlich kaum noch. Wie Gammatester schon sagte, KDFx ist eine vom Autor veränderte Variante von KDF2. Dein Leher kann nicht von dir verlangen das in eine andere Sprache wie C# umzusetzen, das übersteigt Fähigkeiten eines normalen Informatikschülers bei weitem. Warum jetzt auf einmal C#? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz