C # расшифровка AES еврейские буквы отображаются в виде вопросительных знаков - PullRequest
0 голосов
/ 07 мая 2018

У меня есть строка, содержащая буквы на иврите,
после энктификации, когда я пытаюсь расшифровать зашифрованную строку, все буквы на иврите отображаются в виде вопросительных знаков (например, -> ??? ?? ??????)

это два метода, которые я использую для шифрования и дешифрования

 public static string Encrypt(string dectypted)
    {
        byte[] textbytes = ASCIIEncoding.ASCII.GetBytes(dectypted);
        AesCryptoServiceProvider encdec = new AesCryptoServiceProvider();
        encdec.BlockSize = 128;
        encdec.KeySize = 256;
        encdec.Key = ASCIIEncoding.ASCII.GetBytes(Key);
        encdec.IV = ASCIIEncoding.ASCII.GetBytes(IV);
        encdec.Padding = PaddingMode.PKCS7;
        encdec.Mode = CipherMode.CBC;

        ICryptoTransform icrypt = encdec.CreateEncryptor(encdec.Key, encdec.IV);

        byte[] enc = icrypt.TransformFinalBlock(textbytes, 0, textbytes.Length);
        icrypt.Dispose();

        return Convert.ToBase64String(enc) + Key;
    }

    public static string Decrypt(string enctypted)
    {
        byte[] encbytes = Convert.FromBase64String(enctypted);
        AesCryptoServiceProvider encdec = new AesCryptoServiceProvider();
        encdec.BlockSize = 128;
        encdec.KeySize = 256;
        encdec.Key = ASCIIEncoding.ASCII.GetBytes(Key);
        encdec.IV = ASCIIEncoding.ASCII.GetBytes(IV);
        encdec.Padding = PaddingMode.PKCS7;
        encdec.Mode = CipherMode.CBC;

        ICryptoTransform icrypt = encdec.CreateDecryptor(encdec.Key, encdec.IV);

        byte[] dec = icrypt.TransformFinalBlock(encbytes, 0, encbytes.Length);
        icrypt.Dispose();

        return ASCIIEncoding.ASCII.GetString(dec);
    }

Может кто-нибудь сказать мне, что не так и почему я ставлю вопросительные знаки вместо букв иврита?
заранее спасибо

1 Ответ

0 голосов
/ 07 мая 2018

ASCII не может представлять ивритские символы. Он может представлять только ограниченный набор латинских букв и символов. UTF8 - это, вероятно, кодировка, которую вы хотите использовать. Замените ваше использование ASCIIEncoding.ASCII на Encoding.UTF8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...