Ik gebruik de DESCryptoServiceProvider om een tekstje te encrypten en vervolgens weer te decrypten. Probleem is dat het tekstje precies 6 tekens afgekapt wordt. Is dit een bekend probleem, of doe ik iets fout?
EncryptionKey en EncryptionIV zijn twee arrays van bytes, die ieder 8 willekeurige waardes hebben, maar wel constant (dus bij encryption worden dezelfde waardes gebruikt). InputBytes is ook een array van bytes, dat is de ouput van m'n encryption methode:
De bedoeling is uiteindelijk dus dat de variabele Input, van het type string, hetzelfde is als wat uiteindelijk bij de decryption in de variabele ClearText terecht komt. Maar daar mis ik dus 6 tekens...
C#:
1
2
3
4
5
6
7
8
| //Decryption MemoryStream Output = new MemoryStream(); DES Provider = new DESCryptoServiceProvider(); CryptoStream DecStream = new CryptoStream(Output, Provider.CreateDecryptor(EncryptionKey, EncryptionIV), CryptoStreamMode.Write); DecStream.Write(InputBytes, 0, InputBytes.Length); string ClearText = new UnicodeEncoding().GetString(Output.ToArray()); |
EncryptionKey en EncryptionIV zijn twee arrays van bytes, die ieder 8 willekeurige waardes hebben, maar wel constant (dus bij encryption worden dezelfde waardes gebruikt). InputBytes is ook een array van bytes, dat is de ouput van m'n encryption methode:
C#:
1
2
3
4
5
6
7
8
9
| //Encryption MemoryStream Output = new MemoryStream(); DES Provider = new DESCryptoServiceProvider(); CryptoStream EncStream = new CryptoStream(Output, Provider.CreateEncryptor(EncryptionKey, EncryptionIV), CryptoStreamMode.Write); byte[] InputBytes = new UnicodeEncoding().GetBytes(Input); EncStream.Write(InputBytes, 0, InputBytes.Length); return Output.ToArray(); |
De bedoeling is uiteindelijk dus dat de variabele Input, van het type string, hetzelfde is als wat uiteindelijk bij de decryption in de variabele ClearText terecht komt. Maar daar mis ik dus 6 tekens...
日本!🎌