Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Wie wandle ih einen Text in eine Zahl um? (https://www.delphipraxis.net/175933-wie-wandle-ih-einen-text-eine-zahl-um.html)

DelphiProgrammer 30. Jul 2013 12:31

Wie wandle ih einen Text in eine Zahl um?
 
Hallo,
Ich möchte ein Verschlüsselungsprogramm machen und jabe dazu einen text, den ich dann irgendwie in eine Zahl umwandeln will. Kein strzoint oder umgekehrt der text ist ein text und keine Zahl!!!! Also, wie bekomme ich da eine zahl raus? Es soll ein Einweg-Hash werden mit der zahl, die rauskommt werde ih dan irgendwelche rechnungen durchführen, sodass es einigermaßen sicher ist.
LG Christopher

PS: delphi version: delphi7 personal

Klaus01 30. Jul 2013 12:34

AW: Wie wandle ih einen Text in eine Zahl um?
 
.. vielleicht suchst du ord('a');
Grüße
Klaus

blawen 30. Jul 2013 13:04

AW: Wie wandle ih einen Text in eine Zahl um?
 
Zitat:

Zitat von DelphiProgrammer (Beitrag 1223020)
...der text ist ein text und keine Zahl!!!! Also, wie bekomme ich da eine zahl raus?...

Ich empfehle Dir, Dein Anliegen nochmals zu überdenken und zu überlegen, wass Du denn nun genau möchtest. Wenn ich ein Problem sauber beschreiben kann, sehe ich meist auch, wie ich es umsetzen kann.

gammatester 30. Jul 2013 13:13

AW: Wie wandle ih einen Text in eine Zahl um?
 
Wie wäre es mit dem Secure Hash Standard?:wink:

DelphiProgrammer 30. Jul 2013 13:44

AW: Wie wandle ih einen Text in eine Zahl um?
 
Also, ich habe einen string. Darin ist ein text, der verschlüsselt werden soll.
Das stelle ich mor so vor:

Den string in eine zahl umwandeln
dann mit dieser zahl eine mathemathische rechnung machen,
sodass dann eine veränderte zahl herauskommt.

Und wie kann ich eben diesen text in eine zahl umwandeln?
Hexadezimal oder dual oder so?

Klaus01 30. Jul 2013 13:49

AW: Wie wandle ih einen Text in eine Zahl um?
 
.. wie schon oben geschrieben mit ord(Buchstabe) bekommst Du den ascii Wert eines Zeichens
also eine Zahl, diese kannst Du dann mit den anderen Werten der folgenden Zeichen verarbeiten.

Wenn Du ord() nicht verwenden wills, aus welchen Gründen auch immer, kannst Du dir auch selber
eine Lookup-Tabelle erstellen.

Was Du willst ist nicht verschlüsseln, sondern einen Hash aus der Zeichekette gewinnen.

Grüße
Klaus

Back2Code 30. Jul 2013 14:25

AW: Wie wandle ih einen Text in eine Zahl um?
 
Zitat:

Zitat von DelphiProgrammer (Beitrag 1223029)
Also, ich habe einen string. Darin ist ein text, der verschlüsselt werden soll.
Das stelle ich mor so vor:

Den string in eine zahl umwandeln
dann mit dieser zahl eine mathemathische rechnung machen,
sodass dann eine veränderte zahl herauskommt.

Und wie kann ich eben diesen text in eine zahl umwandeln?
Hexadezimal oder dual oder so?

Hier such dir eine aus :

http://crypo.in.ua/tools/

Perlsau 30. Jul 2013 15:08

AW: Wie wandle ih einen Text in eine Zahl um?
 
Zitat:

Zitat von DelphiProgrammer (Beitrag 1223029)
Also, ich habe einen string. Darin ist ein text, der verschlüsselt werden soll.
Das stelle ich mor so vor:
Den string in eine zahl umwandeln
dann mit dieser zahl eine mathemathische rechnung machen,
sodass dann eine veränderte zahl herauskommt.
Und wie kann ich eben diesen text in eine zahl umwandeln?
Hexadezimal oder dual oder so?

Es gibt zahlreiche Verschlüsselungsmethoden. Was du hier angibst, ist jedoch nicht wirklich eine Verschlüsselungsmethode, sondern eine einfache Umwandlung von Buchstaben in entsprechende Zahlen. Ein String ansich ist nicht sinnvoll in eine Zahl umzuwandeln, um daraus später wieder den String zu erstellen. Du hast je 26 Groß- und Kleinbuchstaben, zwei mal drei Umlaute, das ß und zahlreiche Buchstaben mit Apostroph und ähnlichen Zeichen wie z.B. á und È usw. Wenn du jetzt einfach den Ordinalwert dieser Buchstaben zu einer Zahl zusammensetzt, z.B. 'Auto' ergäbe 65117116111, kannst du nicht wissen, ob eine Zahl aus zwei oder drei Ziffern besteht. Daher eignet sich dieser Algorithmus nicht dafür, Strings verschlüsselt zu speichern.

Eine einfache Methode wäre die sog. Cäsar-Verschlüsselung, die für einfachste Anforderungen wohl genügen mag. Ich verwende gerne den Cipher von den Jedi-Komponenten, der ist schon viel schwerer zu knacken. Natürlich kannst du auch eigene Verschlüsselungsmethoden erfinden, indem du z.B. in festgelegten Abständen gewisse Buchstaben einfügst, die beim Entschlüsseln wieder entfernt werden.

Verschlüsselung ist ein sehr komplexes und vielfältiges Thema. Gute Verschlüsselungstechnik schüttelt man nicht einfach mal so aus dem Ärmel ... :cyclops:

implementation 30. Jul 2013 15:20

AW: Wie wandle ih einen Text in eine Zahl um?
 
[OT]
Zitat:

Zitat von Perlsau (Beitrag 1223042)
und zahlreiche Buchstaben mit Apostroph

Zeig mir mal bitte 'nen Buchstaben mit Apostroph :stupid:
[/OT]

sx2008 30. Jul 2013 15:33

AW: Wie wandle ih einen Text in eine Zahl um?
 
Zitat:

Zitat von DelphiProgrammer (Beitrag 1223020)
Es soll ein Einweg-Hash werden

Dann nimm doch MD5, das ist für deine Zwecke wohl noch ausreichend sicher.
https://raw.github.com/sx2008/Delphi...MD5windows.pas
Delphi-Quellcode:
// Anwendungsbeispiel
var
  text, hash : string;
begin
  text := 'das ist irgendein Text';
  hash := MD5String(text);
  // der hash enthält 16 Bytes
Du kannst nun die 16 Bytes in einen 32 Zeichen Hexstring umwandeln.
Wenn es unbedingt eine Zahl sein soll, dann kannst du einfach auch die ersten 4 Bytes kopieren
Delphi-Quellcode:
var
  pruefzahl : integer;
...
  Move(hash[1], pruefzahl, sizeof(Integer);
Natürlich ist ein 16-Byte Hash besser als ein 4-Byte-Hash, aber für geringe Ansprüche immer noch ausreichend.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz