AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi DEC6.0 Verständnisfrage AES Ver-/Entschlüsselung

DEC6.0 Verständnisfrage AES Ver-/Entschlüsselung

Ein Thema von Aviator · begonnen am 10. Feb 2021 · letzter Beitrag vom 15. Feb 2021
Antwort Antwort
Seite 3 von 3     123
DieDolly

Registriert seit: 22. Jun 2018
2.173 Beiträge
 
#21

AW: DEC6.0 Verständnisfrage AES Ver-/Entschlüsselung

  Alt 14. Feb 2021, 16:22
Was wird der Unterschied zwischen DEC 6.1 und DEC 6.1 Lite sein?
Wirst du die Lite-Version auch auf GitHub einstellen? Ich kann mit getit nix anfangen und will das auch nicht.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.772 Beiträge
 
Delphi 12 Athens
 
#22

AW: DEC6.0 Verständnisfrage AES Ver-/Entschlüsselung

  Alt 14. Feb 2021, 16:28
Naja, die Lite wird zwar als Release auch auf GitHub auftauchen, aber wenn du
die normale benutzt bist du besser bedient. In der Lite fehlen nämlich alle
Verschlüsselungsalgorithmen und was damit sonst noch zusammenhängt (Demos, Unit Tests...),
da EMBT lieber vorsichtig wegen amerikanischer Exportbeschränkungen agiert...

Dadurch wird diese Bibliothek aber immerhin unter GetIt sichtbar...
Und die IsPassword Methode hat noch eine vereinfachte Implementierung bekommen.
Die wandert nacher aber auch gleich in den Development Branch.

Grüße

TurboMagic
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.173 Beiträge
 
#23

AW: DEC6.0 Verständnisfrage AES Ver-/Entschlüsselung

  Alt 14. Feb 2021, 16:41
Was ist EMBT?
Heißt das also, DEC darf so nicht in den USA verwendet werden?

Bei DEC Lite fehlen alle Verschlüsselungsalgorithmen. Sollte das dann überhaupt noch "DEC" heißen?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.772 Beiträge
 
Delphi 12 Athens
 
#24

AW: DEC6.0 Verständnisfrage AES Ver-/Entschlüsselung

  Alt 14. Feb 2021, 17:07
1. EMBT = Embarcadero Technologies.

2. Die wollen einfsch keine Bibliotheken in GetIt die starke Verschlüsselung umsetzen,
dam man sonst möglicherweise mit irgendwelchen US Exportregularien in Konflikt geraten
könnte und man evtl. 'ne Menge Papierkram auszufüllen hat.

3. Das sollte uns aber nicht tangieren und du darfst deine mit der DEC geschriebene Software
auch in die USA verbreiten. Andere tun's auch. Was anderes wäre es evtl. wenn du Kunden im
Iran oder so hättest und denen solche Verschlüsselungstechnologie verfügbar machst.
Da hätten die Amis was dagegen.

Jetzt alles klar? Meiner Meinung nach reine Vorsichtsmaßnahme von EMBT.

=> wenn du GetIt nicht benutzt, interessiert dich die Lite nicht und wenn du die volle Version
kennst und nutzt isntalliere halt, was dir GitHub zur Verfügung stellt. GetIt ist für diese
Bibliothek einfach eine Möglichkeit weitere Nutzer "anzufüttern" ok?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#25

AW: DEC6.0 Verständnisfrage AES Ver-/Entschlüsselung

  Alt 14. Feb 2021, 17:08
Grundsätzlich sind das sehr gute Neuigkeiten, dass das DEC - wenn auch abgespeckt - in GetIt integriert wird.
Aber Details in Fragen dazu wären ein separates Thema wert.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#26

AW: DEC6.0 Verständnisfrage AES Ver-/Entschlüsselung

  Alt 15. Feb 2021, 23:04
Meine Frage wäre, was C# da an einfacher zu verwendende Methoden bietet?
In Punkto Kryptographie oder in Punkto String vs. Byte Arrays etc. und deren Umwandlung?
Naja es ist wohl eher eine subjektive Wahrnehmung. Man kann sich jetzt über die Syntax streiten. Teilweise kommen mir die Dinge eben einfacher vor was die Schreibweise und die Nutzung angeht. Es kann aber evtl. auch einfach daran liegen, dass die Codevervollständigung in VS deutlich besser ist als bei Delphi und man dadurch "leichter" ans Ziel kommt.

Meine Delphi Klasse habe ich analog meiner C# Klasse aufgebaut. Im Endeffekt erkennt man alles irgendwie wieder.

Code:
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using WAC.Business.Interfaces;

namespace WAC.Business.Encryption
{
    public class AES : IAES
    {
        private readonly IAesKeyReader aesKeyReader;

        public AES(IAesKeyReader aesKeyReader)
        {
            this.aesKeyReader = aesKeyReader;
        }

        public byte[] Encrypt(string plainText)
        {
            using (AesManaged aes = new AesManaged())
            {
                return Encrypt(plainText, aes.IV);
            }
        }

        public string Decrypt(byte[] cipherText)
        {
            string plaintext = null;
            // Create AesManaged
            using (AesManaged aes = new AesManaged())
            {
                // Create the streams used for decryption.
                using (MemoryStream ms = new MemoryStream(cipherText))
                {
                    byte[] iv = new byte[16];
                    ms.Read(iv, 0, 16);

                    // Create a decryptor
                    ICryptoTransform decryptor = aes.CreateDecryptor(aesKeyReader.GetAesKey(), iv);

                    // Create crypto stream
                    using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
                    {
                        // Read crypto stream
                        using (StreamReader reader = new StreamReader(cs))
                            plaintext = reader.ReadToEnd();
                    }
                }
            }

            return plaintext;
        }

        public byte[] Encrypt(string plainText, byte[] iv)
        {
            byte[] encrypted;
            // Create a new AesManaged.
            using (AesManaged aes = new AesManaged())
            {
                // Create encryptor
                ICryptoTransform encryptor = aes.CreateEncryptor(aesKeyReader.GetAesKey(), iv);
                // Create MemoryStream
                using (MemoryStream ms = new MemoryStream())
                {
                    // Create crypto stream using the CryptoStream class. This class is the key to encryption
                    // and encrypts and decrypts data from any given stream. In this case, we will pass a memory stream
                    // to encrypt
                    using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
                    {
                        // Create StreamWriter and write data to a stream
                        using (StreamWriter sw = new StreamWriter(cs))
                            sw.Write(plainText);
                        encrypted = iv.Concat(ms.ToArray()).ToArray();
                    }
                }
            }
            // Return encrypted data
            return encrypted;
        }
    }
}
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.
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