![]() |
Datenbank vor Eintragung ändern(verschlüsseln)
Hallo,
ich habe eine kleine Datenbank mit meinem E-Mail passwärtern. Diese möchte ich aber nicht unverschlüsselt in die db datenbank übergeben. Aus diesem Grunde möchte ich sie vor dem Zugriff auf die DB per BlowFisch verschlüsseln. Die Verschlüsselungskomponente liefert mir Encode by String by File und by Stream Aber ich weiß nicht wie ich was benutzen könnte. Kann mir jemand weiterhelfen? Ich nutze ne bde datenbank und ein dbgrid! |
Re: Datenbank vor Eintragung ändern(verschlüsseln)
Hallo Kidix,
zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum. Nutzt du Paradox? Du willst verschiedene Passwörter speichern, aber diese nicht im Klartext, sondern verschlüsselt. Habe ich das richtig verstanden? Was genau verstehst du daran nicht? Geht es um die Nutzung der Komponenten oder um Datenbankzugriffe? |
Re: Datenbank vor Eintragung ändern(verschlüsseln)
ja genau...wie mach ich das....
z.B. mit der Komponente von Hagen! |
Re: Datenbank vor Eintragung ändern(verschlüsseln)
kann mir niemand helfen?
|
Re: Datenbank vor Eintragung ändern(verschlüsseln)
Ich habe mir folgende Unit mal zusammengestrickt. Geht sicherlich auch ohne die ganze MD5 Routine, aber als Grundgerüst kannst dus vielleicht nutzen:
Delphi-Quellcode:
unit Verschluesselung;
interface uses { The DCP Encryption components and the unit md5.pas need to be installed } sysutils, DCPcrypt, Base64, RMD160, Blowfish, md5 ; type TVerschluesselung = Class private FSecretKey : string ; BF: TDCP_blowfish; RMD: TDCP_rmd160; public function rmd160 (AValue : string) : string ; function md5 (AValue : string) : string ; function Encrypt (AValue : string) : string ; function Decrypt (AValue : string) : string ; constructor Create (SecretKey : string) ; end ; var CommonSafe : TVerschluesselung ; implementation { TVerschluesselung } constructor TVerschluesselung.Create(SecretKey: string); begin FSecretKey := md5 (rmd160 (SecretKey)) ; end; function TVerschluesselung.Decrypt(AValue: string): string; begin BF := TDCP_blowfish.Create(nil); BF.InitStr(FSecretKey); // initialize the cipher with the key Result := B64Decode (AValue) ; BF.DecryptCFB(Result[1],Result[1],length(Result)); //lblDecrypted.caption := AValue ; BF.Reset; // we are using CFB chaining mode so we must reset after each block of encrypted/decrypts BF.Burn; BF.free ; end; function TVerschluesselung.Encrypt(AValue: string): string; begin BF := TDCP_blowfish.Create(nil); BF.InitStr(FSecretKey); // initialize the cipher with the key BF.EncryptCFB(AValue[1],AValue[1],length(AValue)); Result := B64Encode(AValue) ; BF.Reset; // we are using CFB chaining mode so we must reset after each block of encrypted/decrypts BF.Burn; BF.free ; end; function TVerschluesselung.md5(AValue: string): string; begin result := md5print (md5String (AValue)) ; end; function TVerschluesselung.rmd160(AValue: string): string; var s : string ; i : integer ; HashDigest: array[0..31] of byte; begin RMD := TDCP_rmd160.Create(nil); RMD.init ; RMD.UpdateStr(AValue); RMD.Final(HashDigest); s := '' ; for i:= 0 to ((RMD.HashSize div 8)-1) do begin // write out in hex s:= s + IntToHex(HashDigest[i],2); if ((i+1) mod 2 = 0) and (i <> ((RMD.HashSize div 8)-1)) then s := s + '-' ; end ; Result := s ; //copy (s,1,4*5-1) ; RMD.free ; end; initialization finalization end. |
Re: Datenbank vor Eintragung ändern(verschlüsseln)
danke, as problem ist jetzt nicht die verschlüsselunf an sich, sondern der umgang mit dem dbgrid und der verschlüsselung. das das was eingegeben wird normal angezeigt wird aber verchlüsselt in der paradox tabelle gespeichert wird!
gruß kidix |
Re: Datenbank vor Eintragung ändern(verschlüsseln)
Dann kuck dir in dem Zusammenhang mal "Calculated fields" an. Die kann man allerdings nicht ändern, sondern können nur angezeigt werden.
|
Re: Datenbank vor Eintragung ändern(verschlüsseln)
Zitat:
Du kannst zuerst den Wert auslesen, dann irgend etwas damit machen (=>verschlüsseln zum Beispiel) und schließlich den veränderten Wert wieder zuweisen. Dann wird der DAtensatz mit den von Dir abgewandelten Werten gespeichert. MfG Urs |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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 by Thomas Breitkreuz