Laden...

Verschlüsselung > Zeichen

Erstellt von Savage vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.205 Views
S
Savage Themenstarter:in
100 Beiträge seit 2004
vor 16 Jahren
Verschlüsselung > Zeichen

Moin,

wenn sich ein Benutzer auf einem Webportal registriert, schicke ich ihm ein Email mit einem verschlüsselten Freischaltcode zum aktivieren seines Benutzers. Dadurch kann es passieren, das ein Link so aussieht: http://localhost/register.aspx?regok=VoXyErqjfqGvrW4SGwrVO8ukyu/pnTelDOO4i8JLWT==

Mein Problem ist, dass manche Email-Clients den Link ohne die beiden = am Ende generieren. Kann ich irgendwie umgehen, dass Zeichen wie = beim verschlüsseln verwendet werden?
Hier die Methode:


public static string Encrypt(string TextToBeEncrypted)
        {
            RijndaelManaged RijndaelCipher = new RijndaelManaged();
            string Password = "xxx";
            byte[] PlainText = System.Text.Encoding.Unicode.GetBytes(TextToBeEncrypted);
            byte[] Salt = Encoding.ASCII.GetBytes(Password.Length.ToString());
            PasswordDeriveBytes SecretKey = new PasswordDeriveBytes(Password, Salt);
            //Creates a symmetric encryptor object. 
            ICryptoTransform Encryptor = RijndaelCipher.CreateEncryptor(SecretKey.GetBytes(32), SecretKey.GetBytes(16));
            MemoryStream memoryStream = new MemoryStream();
            //Defines a stream that links data streams to cryptographic transformations
            CryptoStream cryptoStream = new CryptoStream(memoryStream, Encryptor, CryptoStreamMode.Write);
            cryptoStream.Write(PlainText, 0, PlainText.Length);
            //Writes the final state and clears the buffer
            cryptoStream.FlushFinalBlock();
            byte[] CipherBytes = memoryStream.ToArray();
            memoryStream.Close();
            cryptoStream.Close();
            string EncryptedData = Convert.ToBase64String(CipherBytes);

            return EncryptedData;
        }

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Savage,

vermeiden wohl nicht, aber du kannst natürlich anschließend eine (eindeutige) Ersetzung durch andere Zeichen bzw. Zeichensequenzen durchführen.

herbivore

S
Savage Themenstarter:in
100 Beiträge seit 2004
vor 16 Jahren

naja, aber mit was soll ich die zeichen ersetzen? buchstaben und zahlen werden ja alle verwendet.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Savage,

es gibt ja nur max drei Zeichen, die du ersetzen musst: +, / und =. Du kannst + durch AB, / durch AC und = durch AD ersetzen. Natürlich musst du dann vorher alle As durch AA ersetzen.

herbivore

F
101 Beiträge seit 2007
vor 16 Jahren

ich würde die ganz raushauen wenns net klappt 😁

K
27 Beiträge seit 2008
vor 16 Jahren

Du kannst auch einfach jedes Zeichen durch zwei Hexadezimalziffern (gemäß des Ascii-Wertes o.Ä.) ersetzen. Dann ist eindeutige Umkehrung möglich. Der Code verdoppelt sich in der Länge.