public static string Encrypt(string originalMessage, RSAPublicKey publicKey) { BigInteger numericEquivalent = NumberStringEqualizer.StringToBigIntegerEquivalent(originalMessage); BigInteger encodedNumber = BigInteger.ModPow(numericEquivalent, publicKey.E, publicKey.N); string encryptedMessage = NumberStringEqualizer.BigIntToStringEquivalent(encodedNumber); return(encryptedMessage); }
public static string Decrypt(string encryptedMessage, RSAPrivateKey privateKey) { BigInteger numericEquivalent = NumberStringEqualizer.StringToBigIntegerEquivalent(encryptedMessage); BigInteger originalNumber = BigInteger.ModPow(numericEquivalent, privateKey.D, privateKey.N); string originalMessage = NumberStringEqualizer.BigIntToStringEquivalent(originalNumber); return(originalMessage); }
static void LogConversion() { var originalString = "I want to see this! Я тут уже"; var convertedNumber = NumberStringEqualizer.StringToBigIntegerEquivalent(originalString); var extractedString = NumberStringEqualizer.BigIntToStringEquivalent(convertedNumber); _logger.Info("Original string: {0} Restored string: {1}", originalString, extractedString); }