![]() |
Delphi-Version: 2005
Umwandlung charkombination nach integer
hallo ich suche eine möglichkeit folgendes schneller berechnen zu können oder sogar zu umgehen:
für rsa habe ich eine umwandlung von buichstabenkombinationen (immer zwei zusammen) zu einer zahl. dies geht wie folgt: ABCD AB=256*65+66=16706 (zb ascii werte in einem stellenwertsystem) CD=256*67+68=17220 umgekerht wäre: 16706 div 256=65=A 16706 mod 256=66=B 17220 div 256=67=C 17220 mod 256=68=D gibt ABCD Da dies ziemlich viele Rechenoperationen sind, bräuchte ich eine methode um diese umwandlungen in beide richtungen effizienter zu gestalten. |
Re: Umwandlung charkombination nach integer
Aus dem Kopf, daher ohne Gewähr:
Delphi-Quellcode:
ErsteZahl := Ord('A') shl 8 or Ord('B');
//umgekehrt: Char1 := ErsteZahl shr 8; Char2 := ErsteZahl and $00FF; |
Re: Umwandlung charkombination nach integer
ok danke das hat gut geklappt.
|
Re: Umwandlung charkombination nach integer
und wenn ich die blöcke jetzt vergößern möchte, mit mehr buchstaben - wie wäre das möglich?
|
Re: Umwandlung charkombination nach integer
Wenn es nicht mehr als 4 Buchstaben sein sollen, kommst Du mit DWORD aus.
Delphi-Quellcode:
Wieder aus dem Kopf ;)
Zahl := Ord(Buchstabe1) shl 24 or Ord(Buchstabe2) shl 16 or Ord(Buchstabe3) shl 8 or Ord(Buchstabe4);
//umgekehrt: Buchstabe1 := Chr(Zahl shr 24); Buchstabe2 := Chr(Zahl shr 16 and $000000FF); Buchstabe3 := Chr(Zahl shr 8 and $000000FF); Buchstabe4 := Chr(Zahl and $000000FF); |
Re: Umwandlung charkombination nach integer
Zitat:
gibt es auch eine möglichkeit, die anzahlder verkettungen variieren zu lassen, um zb nur zahlen(blöcke) größer 30000 zu bekommen? |
Re: Umwandlung charkombination nach integer
Kannst Du das mal genauer beschreiben? So ganz versteh ich es noch nicht.
|
Re: Umwandlung charkombination nach integer
kein problem
ich bin dabei rsa zu programmieren. bisher habe ich immer zweier blöcke benutzt - das hat auch funktioniert. das problem dabei sind die enorm langen chiffretexte und die langen rechenzeiten. wenn ich also die anzahl der blöcke reduziere, in dem ich die blockgröße erhöhe, verkürze ich beides. |
Re: Umwandlung charkombination nach integer
Ach, und wenn die Anzahl der verbleibenden Buchstaben kleiner als 4 ist, soll die Zahl trotzdem größer als 30.000 sein, richtig?
|
Re: Umwandlung charkombination nach integer
normalerweise schon - aber dafür fragte ich ja an ob es eine möglichkeit gäbe die blockgröße variieren zu lassen - sodass ichb zb sagen könnte, wenn die textlänge mod 7 oder mod 12=0 ist (willkürlich gewählt), dass ich dann blöcke mit einer eben solchen länge (7 bzw 12) behandeln könnte
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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