Hey,
Schreibe grade aus Spaß ein paar der alten Verschlüsselungs Cipher. Habe gerade Vigenere implementiert, mit Groß-Kleinschreibung Support.
Das klappt auch, sofern der Text keine Spaces bzw andere Sonderzeichen enthält. Ich kriegs einfach nicht gebacken bei einem Space den KeyIndex nicht zu erhöhen ...
Was mach ich falsch?
InText: The quick brown fox jumps over the lazy dog!
InKey: BananaZ
ExpectedOut: Uhr qhibl beojn epx wuzpr pvrr ghd mamy qof!
MyOutput: Uhr duhdk beovo sok ivmcs oufr tue mamy dnh!
Nach dem Space stimmts nicht mehr da der KeyIndex weiter hochläuft ..
Schreibe grade aus Spaß ein paar der alten Verschlüsselungs Cipher. Habe gerade Vigenere implementiert, mit Groß-Kleinschreibung Support.
Das klappt auch, sofern der Text keine Spaces bzw andere Sonderzeichen enthält. Ich kriegs einfach nicht gebacken bei einem Space den KeyIndex nicht zu erhöhen ...
Was mach ich falsch?
C-Quellcode
- public string Encipher(string data)
- {
- var keyIndex = 0;
- var characters = data.ToCharArray();
- for (int i = 0; i < characters.Length; i++)
- {
- if (characters[i] >= 65 && characters[i] <= 90 || characters[i] >= 97 && characters[i] <= 122)
- keyIndex = i % _key.Length;
- if (characters[i] >= 65 && characters[i] <= 90)
- characters[i] = (char) ((characters[i] - 65 + Shift(_key[keyIndex])) % 26 + 65);
- else if (characters[i] >= 97 && characters[i] <= 122)
- characters[i] = (char) ((characters[i] - 97 + Shift(_key[keyIndex])) % 26 + 97);
- }
- return new string(characters);
- }
- private int Shift(byte c)
- {
- if (c >= 65 && c <= 90)
- return c - 65;
- if (c >= 97 && c <= 122)
- return c - 97;
- throw new ArgumentOutOfRangeException(nameof(c));
- }
InText: The quick brown fox jumps over the lazy dog!
InKey: BananaZ
ExpectedOut: Uhr qhibl beojn epx wuzpr pvrr ghd mamy qof!
MyOutput: Uhr duhdk beovo sok ivmcs oufr tue mamy dnh!
Nach dem Space stimmts nicht mehr da der KeyIndex weiter hochläuft ..
C# Developer
Learning C++
Learning C++