Ich habe eine App in Visual Studio 2013, mit Passwort-Verschlüsselungsmethoden, und ich muss es auf Xamarin Android migrieren.Xamarin Android-Verschlüsselung GetBytes Methodenunterschied mit C#
Das Problem, das ich hatte, ist, dass die Verschlüsselungsmethode in Xamarin einen anderen Verschlüsselungsstring gibt.
Der Unterschied ist in GetBytes
Methode.
Hier ist ein Teil meines Codes.
byte[] keyBytes = password.GetBytes(keySize/8);
ist, kann ich nicht meine Encryptation ändern in meinem C# Applicaction
public static string Encript(string ptexto, string pClave)
{
return Encript2(ptexto, pClave + "[email protected]", "[email protected]", "MD5", 1, "@1B2c3D4e5F6g7H8", 128);
}
private static string Encript2(string textoQueEncriptaremos, string passBase, string saltValue, string hashAlgorithm, int passwordIterations, string initVector, int keySize)
{
byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector);
byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue);
byte[] plainTextBytes = Encoding.UTF8.GetBytes(textoQueEncriptaremos);
PasswordDeriveBytes password = new PasswordDeriveBytes(passBase,saltValueBytes, hashAlgorithm, passwordIterations);
byte[] keyBytes = password.GetBytes(keySize/8);
RijndaelManaged symmetricKey = new RijndaelManaged()
{
Mode = CipherMode.CBC
};
ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes,initVectorBytes);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, encryptor,CryptoStreamMode.Write);
cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
cryptoStream.FlushFinalBlock();
byte[] cipherTextBytes = memoryStream.ToArray();
memoryStream.Close();
cryptoStream.Close();
string cipherText = Convert.ToBase64String(cipherTextBytes);
return cipherText;
}
die Linie, die den Unterschied machen, Gibt es eine Möglichkeit das gleiche Ergebnis in Xamarin zu erhalten?