Вот проблема, которую я пытаюсь решить. Допустим, я выпускал какое-то веб-программное обеспечение, построенное на ASP.NET MVC, и хотел, чтобы конечный пользователь мог добавлять пользователей X в систему. Программное обеспечение будет размещено на их серверах.
Я хочу включить зашифрованный файл, который, когда пользователь пытается добавить нового пользователя, выходит и читает из файла зашифрованную строку. Когда веб-сайт расшифровывает его, открытым текстом будет количество разрешенных пользователей.
Какой самый лучший / самый простой способ на моем конце зашифровать, чтобы сгенерировать эту строку на моем конце, а затем декодировать ее обратно в текстовый файл в моем приложении? Очевидно, я хочу убедиться, что конечный пользователь не может раскрутить свою зашифрованную строку и просто заменить мою. Я не хочу беспокоиться о том, чтобы попытаться запутать мой источник, чтобы они не могли видеть, как я декодирую строку.
Можно ли зашифровать личным ключом rsa, а затем расшифровать его открытым? Мне не повезло с этим в коде ниже:
var rsa = new RSACryptoServiceProvider();
var pubicKey = rsa.ToXmlString(false);
var privateKey = rsa.ToXmlString(true);
var test = "this string needs to be encrypted then decrypted";
var rsa2 = new RSACryptoServiceProvider();
rsa2.FromXmlString(privateKey);
var encryptedBytes = rsa2.Encrypt(Encoding.UTF8.GetBytes(test), false);
var encryptedString = Convert.ToBase64String(encryptedBytes);
var rsa3 = new RSACryptoServiceProvider();
rsa3.FromXmlString(pubicKey);
encryptedBytes = Convert.FromBase64String(encryptedString);
var decryptedString = Encoding.UTF8.GetString(rsa3.Decrypt(encryptedBytes, false));